如何增加Linux系统最大文件打开数目呢?
查看系统最大可打开文件数
以下命令查看操作系统级最多可打开文件数,fd数目
$ cat /proc/sys/fs/file-max
我用ubuntu 16输出:
573738
怎么调整系统最大可打开文件数
# sysctl -w fs.file-max=1000000
需要用root用户执行以上命令,设最大为一百万。
但在命令行上修改了这个配置,会在下一次操作系统重启后重置为以前的值。要一劳永逸的改变系统最大打开文件数,需要修改 /etc/sysctl.conf 文件。
fs.file-max = 1000000
在/etc/sysctl.conf文件中增加上述一行。
ulimit命令查看/调整进程级最大文件打开数
$ ulimit -Sn
1024
这个命令查看一个ulimit的软极限值(soft limit),本用户起的进程的最大文件打开数的限制。我的ubuntu 16显示进程最多开1024个fd。如果要提高每个进程可同时打开的文件数,需要更改这个值。
$ ulimit -Sn 2048
bash: ulimit: open files: cannot modify limit: Invalid argument
但我想把每个进程可同时打开的文件数增加到以前的两倍时,报错了。这是因为,软极限值(soft limit)不能够越过(Hard Limit)。我看了一下Hard limit,也是1024
$ ulimit -Hn
1024
那没办法罗,需要以root用户登录更改Hard Limit。
怎么修改普通用户的硬极限hard Limit
用root账户登录后,编辑 /etc/security/limits.conf文件,假如普通用户名是kamuszhou。
kamuszhou hard nofile 10000
kamuszhou soft nofile 5000
以上配置修改kamuszhou普通用户的最多打开文件数的hard limit为10000,soft limit为5000。
对于ubuntu 16,如果使用图形桌面,还需要修改 /etc/systemd/system.conf 和 /etc/systemd/user.conf。
加上这么一行:
DefaultLimitNOFILE=10000