2009年1月21日 星期三

Too many open file?!

之前一直都沒有注意Linux有開啟檔案數的問題,一直到不久前,在使用eclipse時常常會出現『Too many open files'的錯誤,導致eclipse無法正常運作。原本以為是Linux上的JDK的問題,在google之後才知道原來是Linux本身的設定問題。

想知道自己某個程式的開啟檔案數,可以用以下的指令察看:
lsof -p [pid of your process] | wc -l
如果想調大檔案開啟數,可以調整fs.file-max這個核心參數。如果memory夠大,可以將此值加大到65536,或是更大:調整的方式:
在/etc/rc.local中加入echo 65536 > /proc/sys/fs/file-max
或是
在sysctl.conf中加入fs.file-max=65536
不過單修改核心參數只能加大系統核心的上限,Linux本身還有針對每個user的每個程式本身的限制,因此還需要編輯/etc/security/limits.conf,並加入
* soft nofile 4096
* hard nofile 4096
修改完畢之後,重新開機即可!

沒有留言: