OSX下Leopard, Yosemite版本的作業系統下, 修改 ulimit 命令預設的程式是 launchd.
預設的ulimit命令繼承自launchd, 預設的limits參數如下:
daviddeMacBook-Pro:etc david$ sudo launchctl limit
Password:
cpu unlimited unlimited
filesize unlimited unlimited
data unlimited unlimited
stack 8388608 67104768
core 0 unlimited
rss unlimited unlimited
memlock unlimited unlimited
maxproc 709 1064
maxfiles 256 unlimited
如果因為如socket串連數過小等原因, 需要修改ulimit相關參數, 可以按照如下方式操作:
1. 在 /etc/launchd.conf(如無, 需用擁有root許可權的賬戶建立) 檔案中, 增加這一行:
echo "limit maxfiles 65535 unlimited" | sudo tee -a /etc/launchd.conf
tee命令是等待使用者輸入, 並將輸入寫入到指定檔案中, -a參數表示添加方式為"追加".
2. 在本次會話中, lanuchd 命令已經啟動了; 如果想讓配置在任何使用者任何會話中都生效, 最簡單的方式就只需要重啟一下server.
如果還需要修改其他參數, 只需要使用 >> 命令追加到 /etc/launchd.conf檔案中即可.
注:
----------------------------------------------------
1. 上面
65535 unlimited
這2個參數即是設定soft和hard值.
2. Linux發行版redhat/centos配置與osx不同,如下:
vi /etc/security/limits.conf# noproc進程數,nofile檔案開啟數
# soft軟式節流, 在程式的進程中可自行改變.
# hard硬限制, 程式不可隨意改變,除非有root許可權.* soft noproc 11000* hard noproc 11000* soft nofile 4100* hard nofile 4100