Linux 中修改打開(kāi)文件的數(shù)量限制
在 Linux中你可以更改打開(kāi)文件的最大數(shù)量。你可以使用ulimit命令。它使你能夠控制可用于 shell 或由它啟動(dòng)的進(jìn)程的資源。
查找 Linux 打開(kāi)文件限制
- # cat /proc/sys/fs/file-max
- 365004
該值表示每次登錄會(huì)話(huà)可以打開(kāi)的文件數(shù)。不同系統(tǒng)結(jié)果可能會(huì)有所不同。
例如在一個(gè) CentOS 我的服務(wù)器,限制設(shè)置為 365004
在 Linux 中檢查硬限制
- # ulimit -Hn
- 65535
檢查 Linux 中的軟限制
- # ulimit -Sn
- 65535
要查看不同用戶(hù)的硬值和軟值,你可以su切換用戶(hù)查看比較。
例如:
- # su rumenz
- $ ulimit -Sn
- 1024
- $ ulimit -Hn
- 1024
如何在 Linux 中檢查系統(tǒng)范圍的文件描述符限制
如果你正在運(yùn)行服務(wù)器,你的某些應(yīng)用程序可能需要更高的打開(kāi)文件描述符限制。一個(gè)很好的例子是MySQL/MariaDB 服務(wù)或 Apache 網(wǎng)絡(luò)服務(wù)器。
你可以通過(guò)編輯內(nèi)核指令來(lái)增加 Linux 中打開(kāi)文件的限制 fs.file-max。sysctl用于在運(yùn)行時(shí)配置內(nèi)核參數(shù)。
例如,將打開(kāi)文件限制增加到 500000,你可以以 root 身份使用以下命令:
- # sysctl -w fs.file-max=500000
你可以使用以下命令檢查打開(kāi)文件的當(dāng)前值:
- $ cat /proc/sys/fs/file-max
使用上述命令,你所做的更改將僅在下次重新啟動(dòng)之前保持活動(dòng)狀態(tài)。如果你希望永久應(yīng)用它們,則必須編輯以下文件:
- # vi /etc/sysctl.conf
添加以下行:
fs.file-max=500000
也可以根據(jù)需要更改數(shù)量。
- # cat /proc/sys/fs/file-max
用戶(hù)需要注銷(xiāo)并重新登錄才能使更改生效。如果要立即應(yīng)用限制,可以使用以下命令
- # sysctl -p
在 Linux 中設(shè)置用戶(hù)級(jí)別打開(kāi)文件限制
上面的示例展示了如何設(shè)置全局限制,但你可能希望對(duì)每個(gè)用戶(hù)應(yīng)用限制。root 用戶(hù)需要編輯以下文件:
- # vi /etc/security/limits.conf
格式:
- <domain> <type> <item> <value>
這是為用戶(hù)設(shè)置軟限制和硬限制的示例 rumenz用戶(hù):
- ## Example hard limit for max opened files
- rumenz hard nofile 4096
- ## Example soft limit for max opened files
- rumenz soft nofile 1024