在linux裡,在/etc/security/limits.conf裡有一個參數是nofile,作用是控制某使用者的檔案打開數量。可以使用ulimit -n的指令檢視具體的限制,一但目前檔案打開數達到nofile上限就無法再打開檔案,進而使某些應用運作異常,如使用者無法通過ssh登入系統。
通過我們可以使用lsof指令檢視檔案打開的具體情況,如使用者、程序的資訊。使用
lsof -p pid
可以檢視某一個程序的檔案打開數量
lsof -u uid
可以檢視某一個使用者的檔案打開數量
但是發現好像沒有一個參數可以知道所有程序的檔案打開數量
是以我就寫了個小腳本來統計一下所有程序的檔案打開數量,進而可以得知到底是哪個程序出現問題,再作進一步的處理,腳本的具體内容如下
同樣,可以稍作修改用于統計所有使用者的檔案打開數量
抛磚引玉,以供參考