Linux 設定開啟檔案上限

以下會介紹在 Linux 檢查及設定開啟檔案數量的限制。

要檢查目前系統最大開啟檔案的數量、可以透過查看檔案 /proc/sys/fs/file-max, 例如:

# cat /proc/sys/fs/file-max
791176

以上的數值 791176,是每個帳號的 login session 下最多可開啟的檔案數量。

對於一台伺服器,有些服務需要很大量的檔案,例如 Apache 及 MySQL 等、要更改這個數值,可以使用 sysctl 指令,sysctl 的作用是在系統執行時,設定 kernel 的參數。

例如想將開啟檔案限制設定為 500000, 指令是這樣的:


# sysctl -w fs.file-max=500000

輸入以上指令後,變更會立即生效,但當重新開機後,又會回復到原來的設定值,要永久改變這個數設,要開啟檔案 /etc/sysctl.conf:

# vi /etc/sysctl.conf

加下以下這行:

fs.file-max=500000

儲存檔案後離開,這樣下次開機後也會保留這個設定。

另一種情況是,想對個別帳號設定開啟檔案上限,需要開啟檔案 /etc/security/limits.conf:

# vi /etc/security/limits.conf

在檔案最後, 以以下格式的設定帳號開啟檔案上限, 每行一個帳號:

例如想對帳號 account01 設定 soft 及 hard limits:

儲存後離開編輯器。


Leave a Reply