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