几天以来,我们在 Java 应用程序中加载文件时收到“打开的文件过多”的提示。因此,我开始在 Google 上搜索,并将 增加到。fs.file-max
之后,我运行。但是,这没有帮助。因为当我输入 时,它返回。前四位数字各不相同,但 0 始终是 0,因为我开始查找。200000
/etc/sysctl.conf
sysctl -p
cat /proc/sys/fs/file-nr
2550 0 200000
我在这里做错了什么,或者我该如何解决这个问题?
我正在运行CentOS release 5.9 (final)
,使用一个 SSD,所以我认为这不会是问题。(此外,它没有满载、虚弱或任何其他问题,并且它已经运行了几个月。)
还有一件事,但我不确定它是否与问题有关;我能够使用 nano/rm 通过 SSH 创建、销毁和编辑文件。而且 Java 应用程序在出现此问题之前运行良好。
谢谢。
答案1
忘记操作系统级别fs.file-max
,它是当前用户/组允许拥有的(每个进程)要编辑的最大文件句柄数。请参阅ulimit -n
。
您可以通过修改 来以 root 身份调整此限制。另外,通过向您的 添加(或您希望拥有的任何限制)来/etc/security/limits.conf
确保应用限制。ulimit -SHn 8192
~/.bashrc