使用如下命令檢視當前最大檔案控制代碼數:
ulimit -n
ulimit -n
輸出:1024
解決方案:
1.調整ubuntu下的檔案控制代碼數。
檢視這篇文章:
中的
1. #vi /etc/profile,增加ulimit -hsn 65536 將檔案控制代碼數修改到
10240,
但執行後,使用
bash: ulimit: open files: 無法修改 limit 值: 不允許的操作於是查詢到這篇:
寫道於是我用root許可權修改了為啥root使用者是可以的?普通使用者又會遇到這樣的問題?
看一下/etc/security/limits.conf大概就會明白。
linux對使用者有預設的ulimit限制,而這個檔案可以配置使用者的硬配置和軟配置,硬配置是個上限。
超出上限的修改就會出「不允許的操作」這樣的錯誤。
/etc/security/limits.conf
檔案,增加以下內容:
* soft nproc 10240
* hard nproc 10240
* soft nofile 10240
* hard nofile 10240
*代表domain,影響到的域,我這裡設定了全部。
soft/hard :代表軟性或者硬性限制
nproc:max number of processes 設定最大的程序數
nofile:max number of open files 設定最大的檔案控制代碼數
/etc/profile中的檔案控制代碼數生效。 (具體這個檔案是做什麼用的,我在下次再討論下。)
session required pam_limits.so
ulimit -hsn 10240
此時執行:
bash:
ulimit: open files: 無法修改 limit 值: 不允許的操作
這是因為需要重啟電腦,否則更改不會立即生效。
檢查:ulimit -a 這個是列出當前系統的所有內容限制
ulimit -n 這個是列出當前系統能夠開啟最大的檔案控制代碼數。
重啟電腦之後,就可以使用root方式進行修改/etc/profile中的
ulimit -hsn 後的
linux檔案控制代碼數
1 問題闡述 too many open files 顧名思義即開啟過多檔案數。不過這裡的files不單是檔案的意思,也包括開啟的通訊鏈結 比如socket 正在監聽的埠等等,所以有時候也可以叫做控制代碼 handle 這個錯誤通常也可以叫做控制代碼數超出系統限制。2 產生的原因 經常在使用linu...
修改liunx 檔案控制代碼數
root ubuntu 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...
Linux檔案控制代碼數配置
1 單程式控制程式碼數限制 檢視配置的控制代碼數 ulimit n cat etc security limits.conf soft nofile 655360 hard nofile 655360 2 全域性控制代碼數限制 cat proc sys fs file max 3 分析控制代碼數常用...