Fox*_*BOA 17 linux filesystems debian daemon
我在 Debian 有很长的运行过程。在某些时候抛出错误:
打开的文件太多。
跑步:
ulimit -a
显示:
打开文件 (-n) 1024
我希望将打开文件的数量增加 2 倍。执行后
ulimit -n 2048
该限制在我的会话结束前一直有效,这不适用于该任务。
如何永久增加打开文件的数量?
Dan*_*son 13
如果您的进程是通过脚本启动的,您可以在执行守护程序之前在脚本中调用 ulimit。
如果您希望为您的用户或所有用户增加 ulimit,您可以设置pam_limits在登录时应用的限制。这些设置在/etc/security/limits.conf. 在您的情况下,您可以执行以下操作:
* hard nofile 2048
Run Code Online (Sandbox Code Playgroud)
请注意,“hard”表示硬限制 - 不能超过,也不能更改。用户可以更改软限制(例如,没有 root 权限的人),但不能超出硬限制。
阅读limits.conf有关使用的更多信息pam_limits。
rkt*_*hkr 13
内核中还设置了打开文件的“总最大值”,您可以使用以下命令检查当前设置:
cat /proc/sys/fs/file-max
Run Code Online (Sandbox Code Playgroud)
并设置一个新值:
echo "104854" > /proc/sys/fs/file-max
Run Code Online (Sandbox Code Playgroud)
如果要在重新启动之间保留配置,请添加
sys.fs.file-max=104854
Run Code Online (Sandbox Code Playgroud)
到
/etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)
要检查当前的最大文件使用量:
[root@srv-4 proc]# cat /proc/sys/fs/file-nr
3391 969 52427
| | |
| | |
| | maximum open file descriptors
| total free allocated file descriptors
total allocated file descriptors
(the number of file descriptors allocated since boot)
Run Code Online (Sandbox Code Playgroud)
请注意,如果您通过在 /etc/security/limits.conf 中设置 ulimits 的 start-stop-daemon 来运行您的进程将不起作用。例如,如果您想将 tomcat 的打开文件限制提高到 20000,您需要将这些添加到行中/etc/default/tomcat:
ulimit -Hn 32768
ulimit -Sn 32768
Run Code Online (Sandbox Code Playgroud)
我在 debian 6.0.4 上遇到了这个问题 对于其他进程,给出的答案应该会有所帮助。
| 归档时间: |
|
| 查看次数: |
42027 次 |
| 最近记录: |