2013-11-04 378 views
5

Tomcat在我的工作站上運行了好幾天,現在沒有響應,lsof命令輸出很多close_wait狀態連接,tomcat pid是25422,但是ulimit命令顯示「打開的文件」是1024,這怎麼會發生?爲什麼lsof報告比ulimit的「打開文件」輸出更高的打開文件編號

[[email protected] home]# lsof -p 25422 | wc -l 
10309 

[[email protected] 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 
+0

我有一些問題,你找到可能的原因? – snow8261

+0

有關答案,請參閱http://serverfault.com/q/396872和http://superuser.com/q/579692 – JoseK

回答

0

對於打開的文件,我們在linux操作系統上有軟/硬打開文件限制。

如果達到軟限制,它只會將限制擴大到上限,但在硬限制下。

通過檢查硬限制,你可以簡單地運行:

# ulimit -Hn 

這裏也是一個文章可以幫助您瞭解更多:

Guide to limits.conf/ulimit /open file descriptors under linux