Linux的最大檔案數限制

2021-06-27 20:04:32 字數 1199 閱讀 9207

在nginx優化的過程中,將 connections加大的時候nginx發出警告

worker_connections exceed open file resource limit: 1024

此警告的問題是受限於linux的最大檔案數限制。

環境:centos5.8 64bit

ulimit -n

檢視使用者開啟的最大檔案數:1024

此處的1024是每個程序開啟的最大檔案數,對於系統的最大限制:

more /proc/sys/fs/file-max

355828

file-max是整機可以開啟的fd數目,對確定的程序仍然是1024個。

那麼我們來修改我們的限制。

修改/etc/security/limits.conf檔案,在檔案中新增如下行:

* soft noproc 65535

* hard noproc 65535

* soft nofile 65535

* hard nofile 65535

就是限制了任意使用者的最大執行緒數和檔案數為65535。

其中*為所有使用者的開啟檔案數限制,可用』*'號表示修改所有使用者的限制;soft或hard指定要修改軟限制還是硬限制;10240則指定了想要修改的新的限制值,即最大開啟檔案數(請注意軟限制值要小於或等於硬限制)。修改完後儲存檔案。

修改/etc/pam.d/login檔案,在檔案中新增如下行:

session required /lib/security/pam_limits.so

這是告訴linux在使用者完成系統登入後,應該呼叫pam_limits.so模組來設定系統對該使用者可使用的各種資源數量的最大限制(包括使用者可開啟的最大檔案數限制),而pam_limits.so模組就會從/etc/security/limits.conf檔案中讀取配置來設定這些限制值。修改完後儲存此檔案。

修改/etc/rc.local指令碼,在指令碼中新增如下行:

echo 「65535"> /proc/sys/fs/file-max

這是讓linux在啟動完成後強行將系統級開啟檔案數硬限制設定為65535。修改完後儲存此檔案。

如果比較懶的話可以在 rc.local 裡面 明確命令 ulimit -n ***xx

除了在系統中進行設定 nofile(fs.file-max) 值外,可以在 nginx.conf 中指定worker_process可以使用的nofile值,如:

Linux的最大檔案限制數ulimit

linux對於每個使用者,系統限制其最大程序數。為提高效能,可以根據裝置資源情況,設定各linux 使用者的最大程序數可以用ulimit a 來顯示當前的各種使用者程序限制。ulimit 顯示 或設定 使用者可以使用的資源的限制 limit 這限制分為軟限制 當前限制 和硬限制 上限 其中硬限制是軟...

關於Linux系統開啟最大檔案數量

今天做壓力測試 客戶端資料提到2000人,在這個過程中,遇到了分配socket失敗的問題 提示 errno 24 too many open files 查詢資料後發現是linux系統配置了開啟檔案的最大數量 通過 ulimit a 檢視結果 這個是修改後的了 修改前 open files 1024...

修改linux 最大檔案限制數 ulimit

1 修改當前互動終端的limit值 查詢當前終端的檔案控制代碼數 ulimit n 回車,一般的系統預設的1024.修改檔案控制代碼數為65535,ulimit n 65535.此時系統的檔案控制代碼數為65535.2 將ulimit 值新增到 etc profile檔案中 適用於有root許可權登...