系统句柄数和进程句柄(max-file&ulimit -n)

Posted kiroct

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统句柄数和进程句柄(max-file&ulimit -n)相关的知识,希望对你有一定的参考价值。

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 51024 = 41943040 bytes = 40MIB
64位系统:计算比例:fs.inotify.max_user_watches = fs.inotify.max_user_instances
64


1、已经安装系统手动更改方案,纯手动
```html/xml
#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多机器自动化调整
```html/xml
#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

以上是关于系统句柄数和进程句柄(max-file&ulimit -n)的主要内容,如果未能解决你的问题,请参考以下文章

修改操作系统句柄数和用户进程数

设置Linux打开文件句柄/proc/sys/fs/file-max和ulimit -n的区别

Linux中如何解除最大进程数和最大文件句柄打开数限制?

解除Linux最大进程数和最大文件句柄打开数限制

linux 调优--修改文件最大句柄数

【fd】Linux文件描述符