2013年5月22日 星期三

查詢修改 Linux maximum open file限制

當某些特殊情況,需大量開啟檔案時(上萬個),往往會被系統阻擋並提示 "Too many files"。此時需要針對系統參數去做修改。

而會限制 maximum open file 的部分有分兩個:一個是 kernel level,另一個為 user level。

Kernel level:限制整個系統所能開啟的最大檔案數量(所有使用者和系統的總和)。


查詢 fs.file-max
$ sysctl fs.file-max
暫時修改 fs.file-max(重開機後失效)
$ sudo sysctl -w fs.file-max=<numbers>
自動修改 fs.file-max(重開機會自動套用)
$ sudo vi /etc/sysctl.conf
在檔尾修改或插入設定。
s.file-max = <numbers>
重新載入設定
$ sudo sysctl -p




User Level,open files:限制單一使用者所能開啟的最大檔案數量。


查詢
$ ulimit -n
修改
$ sudo vi /etc/security/limits.conf
在檔尾加入需要的設定。
Example:* - nofile 65535
Syntax:<domain> <type> <item> <value>
<domain>:欲調整個使用者(可以用 * 表示所有使用者)或群組(在群組名稱前加@)。
<type>:分為 hard 和 soft,或是以 - 表示兩者。
<item>:要設定的參數名稱。
<value>:欲給予的值。

之後重新開機後,便會套用設定。



沒有留言:

張貼留言