file-max与ulimit的关系与差别
两者查看命令:
sysctl -a | grep file
cat /etc/security/limits.conf
ulimit -a #查看当前用户当前shell的ulimit参数
file-max与file-nr
/proc/sys/fs/file-max 决定了当前内核可以打开的最大的文件句柄数,系统所有进程一共可以打开的文件数量。
/proc/sys/fs/file-nr 当前kernel的句柄
file-max解释:
The value in file-max denotes the maximum number of file handles that the
Linux kernel will allocate. When you get a lot of error messages about running
out of file handles, you might want to raise this limit. The default value is
10% of RAM in kilobytes. To change it, just write the new number into the
file:
file-nr解释
Historically, the three values in file-nr denoted the number of allocated file
handles, the number of allocated but unused file handles, and the maximum
number of file handles. Linux 2.6 always reports 0 as the number of free file
handles -- this is not an error, it just means that the number of allocated
file handles exactly matches the number of used file handles.
修改:
vim /proc/sys/fs/file-max修改即可生效
ulimit
说一下open files这个值
ulimit -n : 用户当前shell以及该shell启动的进程打开的文件数量,
所以ulimit -n限制用户单个进程的问价打开最大数量这句话是错误的
这个值默认: 1024
修改
ulimit -n 65535 只能修改当前shell会话。
永久修改需要设置:/etc/security/limits.conf
root soft nofile 65535
root hard nofile 65535
#其他用户可以使用*
修改后重启
说一下Ubuntu系统修改。需要检查/etc/pam.d/su /etc/pam.d/session /etc/pam.d/login 等模块是否开启了
session required pam_limits.so
这个还不够,对于root用户,Ubuntu系统/etc/security/limits.conf中的*是不能代表root用户的。所以必须写root用户名
root soft nofile 65535
root hard nofile 65535
转自 快问文档 www.kuaiwen.net