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