大家都知道Linux系統預設打開檔案數是1024,而實際的生産環境中,這個值總是顯得太小,而太小的後果就是你的系統會報:too many open files 等這樣的錯誤導緻你系統死掉,是以我們總是要修改這個值,雖然表面上看來,Linux提供了ulimit這樣的指令讓你修改這個檔案打開數,但不幸的是,過程遠遠沒有看到的那麼簡單,下面子猴就談談這方面的問題。
1、 首先我們通過ulimit –a指令來檢視系統的一些資源限制情況,如下:
紅框中所示的是最大檔案打開數,一般情況下是1024,但由于我系統已經改為了32768,是以現在看到的是32768。
我們也可以通過ulimit –n指令來檢視最大檔案打開數,如下:
32768
2、 修改目标
我們的目标是:讓每一個使用者登入系統後系統打開的最大檔案數都是我們設定好的。
但我這裡不得不說的是:非常遺憾,網上很多這方面關于ulimit設定修改資源限制的文章,但沒一篇文章管用。
把這個目标分解為兩個目标:
2.1、設定對root使用者登入系統生效
這個目标可以實作起來不難
2.2、設定對所有使用者生效
這個就非常麻煩了,弄不好還會把你的系統給整壞,因為要重編譯Linux的核心才行!
是以權衡之下,我隻實作了第一個目标,因為第二個目标的風險太大,我想如果我之前知道這點,那麼我在裝系統的時候我會先做這個處理,但現在我覺得已經晚了。
3、 修改的地方
3.1、修改/etc/security/limits.conf
通過 vi /etc/security/limits.conf修改其内容,在檔案最後加入(數值也可以自己定義):
* soft nofile = 32768
* hard nofile = 65536
3.2、修改/etc/profile
通過vi /etc/profile修改,在最後加入以下内容
ulimit -n 32768
然後重新登入即可生效了。
說明:
其實隻修改/etc/profile就可以生效了,但我還是建議把/etc/security/limits.conf也修改一下。
使用 source /etc/profile 使修改生效
最後強調的是,你如果要使得修改對所有使用者都生效,那麼現在看來你隻能重新編譯Linux的核心才行。