从/var/日志/消息我看到很多行如下:
Oct 9 10:01:14 Linux_machine15 syslog-ng[14736]: Error opening file for writing; filename='/var/log/remote/102.18.20.44/kern.log', error='Too many open files (24)'
我需要了解“打开文件过多 (24)”消息的含义是什么?
more /etc/security/limits.conf
* soft nofile 8192
* hard nofile 65536
* soft nproc 8391
* hard nproc 16384
答案1
操作系统设置了限制,即一个进程允许打开的文件数量。这些限制通常设置在/etc/security/limits.conf
.
默认情况下,打开文件的限制可能太低,有时低至 1024。
您可以通过添加以下内容来增加全局限制:
* - nofile 16384
username
您还可以通过将第一列中的星号替换为 或 来设置每个用户或每个组的限制@groupname
。
答案2
系统可以处理的打开文件数量有两个可配置的限制。要查看硬值和软值,请使用:
ulimit -Hn
ulimit -Sn
IIRC 大多数发行版将文件描述符的限制设置为每个用户 1024 个。您可以使用 删除限制ulimit -n 0
。
要永久更改此设置,请调整/etc/security/limits.conf
并重新启动系统:
echo -ne "
* soft nofile 65536
* hard nofile 65536
" >>/etc/security/limits.conf