一、產生原因
too many open files是linux系統中常見的錯誤,從字面意思上看就是說程式開啟的檔案數過多,不過這裡的files不單是檔案的意思,也包括開啟的通訊鏈結(比如socket),正在監聽的埠等等,所以有時候也可以叫做控制代碼(handle),這個錯誤通常也可以叫做控制代碼數超出系統限制。
二、檢視程式當前開啟控制代碼的數量
例如,我有個tomcat中報了這個錯:
ps -ef | grep tomcat檢視pid
lsof -p 程序id | wc -l檢視程序開啟控制代碼的數量
cat /proc/程序id/limits 檢視程序最大能開啟的檔案數
ulimit -a單個程序預設可以開啟的控制代碼數上限
三、解決方法
1、增大允許開啟的檔案數——命令方式
ulimit -n 2048
這樣就可以把當前使用者的最大允許開啟檔案數量設定為2048了,但這種設定方法在重啟後會還原為預設值。
ulimit -n命令非root使用者只能設定到4096。
想要設定到更大需要sudo許可權或者root使用者。
2、增大允許開啟的檔案數——修改系統配置檔案
vim /etc/security/limits.conf
#在最後加入
* soft nofile 4096
* hard nofile 4096
或者只加入
* - nofile 8192
最前的 * 表示所有使用者,可根據需要設定某一使用者,例如
roy soft nofile 8192
roy hard nofile 8192
注意」nofile」項有兩個可能的限制措施。就是項下的hard和soft。 要使修改過得最大開啟檔案數生效,必須對這兩種限制進行設定。 如果使用」-「字元設定, 則hard和soft設定會同時被設定。
解決 SVN解決衝突
intelij idea 使用svn,提交 前先更新 此時如果有衝突,就會提示你解決衝突。產生衝突的情況 a 和 b 兩名程式設計師,分別更新了同一版本 version 1 的 同時修改了乙個檔案。a提交 後,伺服器中的 是 version a 即 a 修改後的 b隨後提交 由於伺服器中的 已經不是...
svn is already locked解決方案
蛋疼的問題,不是一次遇到了,每次遇到的原因都不一樣,從網上摘錄了一些資料,整理成文,svn是個不錯的東東。svn already locked 解決辦法 在出錯資料夾下,滑鼠右鍵tortoisesvn clean up.svn錯誤 attempted to lock an already locke...
Bad for loop variable解決方法
錯誤為syntax error bad for loop variable 解決辦法 sudo dpkg reconfigure dash 在選擇項中選no 從 ubuntu 6.10 開始,ubuntu 就將先前預設的bash shell 更換成了dash shell 其表現為 bin sh 鏈結...