Linux
在 /etc/sysctl.conf 與 /etc/security/limits.conf 中設置打開文件限制有什麼區別?
我已經閱讀了兩種增加允許打開文件計數的不同方法(如果重要,我正在嘗試為 root 進行修改)。
一種方法是使用以下內容更新設置
/etc/security/limits.conf
:* soft nofile 500000 * hard nofile 500000 root soft nofile 500000 root hard nofile 500000
要為活動 shell 進行設置,看起來你可以這樣做
ulimit -n 500000
,這不需要重新啟動或註銷/登錄,但可能需要重新啟動服務 (?)。另一種選擇是更新
/etc/sysctl.conf
:echo 'fs.file-max = 500000' >> /etc/sysctl.conf
要為活動 shell 進行設置,我們可以執行
sysctl -p
,並使用 進行驗證sysctl fs.file-max
。所以我的問題是,有什麼區別?有嗎?我上線了
Ubuntu 14.04.2 LTS
不同之處在於範圍和應用方式。通過 sysctls 設置的打開文件限制適用於整個系統,而通過設置的限制
/etc/security/limits.conf
僅適用於滿足此處指定標準的內容。另一個主要區別是/etc/security/limits.conf
限制是通過 ulimit 應用的,因此可以更容易地更改,而 sysctl 限製本質上是在核心本身中設置記憶體分配限制。作為一般規則,您幾乎總是希望使用
/etc/security/limits.conf
,即使您在那裡使用萬用字元匹配設置全域限制,因為它更可靠,並且當遇到 ulimit 限制時,事情通常會比點擊核心記憶體分配更優雅地失敗限制。