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