max-file 表示系统级别的能够打开的文件句柄的数量。是对整个系统的限制,并不是针对用户的。 ulimit -n 控制进程级别能够打开的文件句柄的数量。提供对shell及其启动的进程的可用文件句柄的控制。这是进程级别的,最大65535
句柄不足可能会产生的问题:日志库无法采集到日志!!!
此处要说的是系统级别的句柄数max-file 相关的值: fs.inotify.max_user_instances fs.inotify.max_user_watches 计算公式: fs.inotify.max_user_instances使用内存总量(bytes) = fs.inotify.max_user_instances * 5KB = 8192 * 5*1024 = 41943040 bytes = 40MIB 64位系统:计算比例:fs.inotify.max_user_watches = fs.inotify.max_user_instances * 64
1、已经安装系统手动更改方案,纯手动
#N为具体数字
echo "fs.inotify.max_user_watches=N " >> /etc/sysctl.conf
echo "fs.inotify.max_user_instances=N " >> /etc/sysctl.conf
/sbin/sysctl -p
手动查询是否生效:cat /proc/sys/fs/inotify/max_user_watches
cat /proc/sys/fs/inotify/max_user_instances
#如果 /etc/sysctl.conf先前已经存在设置的fs.inotify.max_user_watches=N和fs.inotify.max_user_instances=N ,记得先删除这些配置,再添加新的数值
2、使用ansible多机器自动化调整
#N为具体数字,下面的仅为task
- name: sysctl fs.inotify.max_user_instances
sysctl: name=fs.inotify.max_user_instances value=N
state=present
- name: sysctl fs.inotify.max_user_watches
sysctl: name=fs.inotify.max_user_watches value=N
state=present