我们有一台linux服务器在几个星期内运行良好,直到我们的用户群开始增长,我们的java服务器在许多地方开始失败! 事实certificate,所有的文件和套接字都失败了,因为它返回“太多的文件打开”。 我相信我已经达到某种文件限制。
我怎样才能改变这个? ulimit命令显示“无限”。
任何其他的想法?
我相信这个限制是每个过程? 因为我仍然可以用say,vi来打开文件,例如…
这里是完整的ulimit输出
ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 4160 max locked memory (kbytes, -l) 32 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 1024 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
打开文件的限制设置为1024,而不是无限制。 用ulimit -n进行testing,然后在/etc/security/limits.conf中进行生产使用。
SvenW是在钱上。
只是补充一点,如果你不想在一个新的政策系统范围内; 例如,产生Java进程的用户也执行其他任务。 这可能是根源。 然后,你可能希望编辑或创build一个包装,启动您的Java应用程序执行ulimit -nX之前启动。 显然,你应该玩X的价值来find一个合理的数字为您的要求。