我创建一个使用libev创造大量开TCP连接到一个应用程序我工作的一个负载测试。 目前,它的炸弹在出去256个连接,由于NOFILES限制:
ulimit -n
256
我可以做下面增加这1024:
ulimit -n 1024
但我不能进一步增加它。 理想情况下,我想将它设置为1048576。它提供了以下错误:
ulimit: open files: cannot modify limit: Invalid argument
我怎样才能提高的ulimit进一步在OSX?
(回答更新为使用-S几个评论者建议)
$ sysctl kern.maxfiles
kern.maxfiles: 12288
$ sysctl kern.maxfilesperproc
kern.maxfilesperproc: 10240
$ sudo sysctl -w kern.maxfiles=1048600
kern.maxfiles: 12288 -> 1048600
$ sudo sysctl -w kern.maxfilesperproc=1048576
kern.maxfilesperproc: 10240 -> 1048576
$ ulimit -S -n
256
$ ulimit -S -n 1048576
$ ulimit -S -n
1048576
还有一两件事:在端口限制为65535。所以,只要你想,你可能无法得到尽可能多的。
尝试以root身份运行(例如运行ulimit命令和程序之前做一个“命令-s”)。
请注意,我不知道这一次1 000万美元以上的TCP套接字是现实可行的(虽然我在听到当你尝试会发生什么有趣; ^))
此外,检查出这个 。