因為管理的環境有 CentOS / Ubuntu 兩種,常常要設定一個功能都要找看看能不能兩邊都能動,這篇要講的是 ulimit 大家很常用的功能
ulimit 是一個系統內建的 security 功能,預設限制系統的使用量,就像是網路的 QoS 一樣,但如果沒有調整,在量大的時候會遇到像「CentOS Nginx (Too many open files in system) 系統限制檔案開啟數量」這樣的情況。
一般情況下就是在 ulimit.conf 用 * 表示所有使用者
* soft nofile 65535
* hard nofile 65535
但是在 Ubuntu 卻無法生效,找了一下發現,在 Debian 體系 *
無法涵括 root
官方說這並不是 Bug,最後決定更新文件告訴大家 * 不適用 root
NOTE: group and wildcard limits are not applied to the root user. To set a limit for the root user, this field must contain the literal username root.
所以看 CentOS 和 Ubuntu 兩個 limits.conf 的文件會有些許不同 …
在 Debian 體系的系統要修改 root 可以這樣設定:
* - nofile 65536
root - nofile 65536
- 第一條適用除了 root 以外的 user
- 第二條適用 root user