天天看點

linux 打開檔案數 too many open files解決方法 檢視每個使用者最大允許打開檔案數量 檢視目前系統打開的檔案數量 檢視某一程序的打開檔案數量 設定open files數值方法 永久設定方法

在運作某些指令或者 tomcat等伺服器持續運作 一段時間後可能遇到   too many open files。

出現這句提示的原因是程式打開的檔案/socket連接配接數量超過系統設定值。

ulimit -a

linux 打開檔案數 too many open files解決方法 檢視每個使用者最大允許打開檔案數量 檢視目前系統打開的檔案數量 檢視某一程式的打開檔案數量 設定open files數值方法 永久設定方法

其中 open files (-n) 8192 表示每個使用者最大允許打開的檔案數量是8192 。 預設是1024。1024很容易不夠用。

lsof | wc -l  

watch "lsof | wc -l"  

lsof隻能以root權限執行。

在終端下輸入lsof即可顯示系統打開的檔案,因為 lsof 需要通路核心記憶體和各種檔案,是以必須以 root 使用者的身份運作它才能夠充分地發揮其功能。

lsof -p pid | wc -l  

lsof -p 1234 | wc -l  

ulimit -n 2048

這樣就可以把目前使用者的最大允許打開檔案數量設定為2048了,但這種設定方法在重新開機後會還原為預設值。

ulimit -n指令非root使用者隻能設定到4096。

想要設定到8192需要sudo權限或者root使用者。

linux 打開檔案數 too many open files解決方法 檢視每個使用者最大允許打開檔案數量 檢視目前系統打開的檔案數量 檢視某一程式的打開檔案數量 設定open files數值方法 永久設定方法

要使 limits.conf 檔案配置生效,必須要確定 pam_limits.so 檔案被加入到啟動檔案中。檢視 /etc/pam.d/login 檔案中有:

session required /lib/security/pam_limits.so

vim /etc/security/limits.conf  

在最後加入  

* soft nofile 4096  

* hard nofile 4096  

或者隻加入

 * - nofile 8192

最前的 * 表示所有使用者,可根據需要設定某一使用者,例如

fdipzone soft nofile 8192  

fdipzone hard nofile 8192  

注意"nofile"項有兩個可能的限制措施。就是項下的hard和soft。 要使修改過得最大打開檔案數生效,必須對這兩種限制進行設定。 如果使用"-"字元設定, 則hard和soft設定會同時被設定。 

改完後登出一下就能生效。

如果是puty等工具遠端登入的  重新登入就生效了。不需要重新開機。

<a href="http://blog.itpub.net/27144762/viewspace-1306185/" target="_blank">linux limits.conf配置說明</a>

先看這個檔案的簡介,有英文基礎的應該明白這資源限制到底限制了什麼!!

limits.conf的格式如下:

type:有soft,hard以及-,soft指的是目前系統生效的設定值。hard 表明系統中所能設定的最大值。soft的限制不能比hard限制高。用-就表明同時設定了soft和hard的值。

resource:

core - 限制核心檔案的大小

date - 最大資料大小

fsize - 最大檔案大小

memlock - 最大鎖定記憶體位址空間

nofile - 打開檔案的最大數目

rss - 最大持久設定大小

stack - 最大棧大小

cpu - 以分鐘為機關的最多CPU時間

noproc - 程序的最大數目

as - 位址空間限制

maxlogins - 此使用者允許登入的最大數目

要使limits.conf檔案配置生效,必須要確定 pam_limits.so檔案被加入到啟動檔案中。

檢視 /etc/pam.d/login 檔案中有:(沒有就添加)

注意:

好多人設定了limitc.conf沒有測試,測試後發現沒有生效

原因大多數為:

32位系統 session required /lib/security/pam_limits.so

64位系統 session required /lib64/security/pam_limits.so

本文轉自leonardos51CTO部落格,原文連結:<b>http://blog.51cto.com/leomars/1895489</b> ,如需轉載請自行聯系原作者

繼續閱讀