Linux 開啟檔案太多錯誤 “too many open files”

如果在 Linux 下的指令或 Script 開啟的檔案數量太多,超過了系統開啟檔案的限制,便會看到以下錯誤:

Too many open files (24)

解決方法是提高開啟檔案的限制,而提高開啟檔案上限,分別可以設定整個系統通用,或者只針對個別使用者帳號,以下是設定方法:

個別使用者帳號設定:

開啟檔案 /etc/security/limits.conf:

# /etc/security/limits.conf

例如我要將 useracc 帳號的開啟檔案限制改為 500000, 在檔案最後加入以下兩行:


useracc hard nofile 500000
useracc soft nofile 500000

然後開啟檔案 /etc/pam.d/common-sess
儲存檔案後,useracc 帳號下次登入後,設定便會生效,如果帳號已經登入,需要重新登入才會生效。

上調系統預設限制

開啟檔案 /etc/sysctl.conf

# vi /etc/sysctl.conf

加入以下一行:

fs.file-max = 2097152

儲存檔案後離開編輯器,下次開機設定會生效,或者執行以下指令讓設定立即生效:

# sysctl -p


Leave a Reply