Tomcat在我的工作站上运行了好几天,现在它没有响应,lsof命令输出大量的close_wait状态连接,tomcat pid是25422,但是ulimit命令显示“打开文件”是1024,这怎么会发生?
[root@localhost home]# lsof -p 25422 | wc -l 10309 [root@localhost home]# 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) 399360 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) 10240 cpu time (seconds,-t) unlimited max user processes (-u) 399360 virtual memory (kbytes,-v) unlimited file locks (-x) unlimited
解决方法
对于打开的文件,我们在linux os上有软/硬打开文件限制.
如果达到软限制,它只会将限制扩展到更高限制但在硬限制下.
通过检查硬限制,您可以简单地运行:
# ulimit -Hn
这篇文章也可以帮助您了解更多:
Guide to limits.conf / ulimit /open file descriptors under linux