35

libev を使用して、作業中のアプリへの多数の開いている tcp 接続を作成するロード テスターを作成しています。現在、nofiles の制限により、256 接続で爆発しています。

ulimit -n
256

以下を実行して、これを 1024 に増やすことができます。

ulimit -n 1024

しかし、これ以上増やすことはできません。理想的には、1048576 に設定したいと考えています。次のエラーが発生します。

ulimit: open files: cannot modify limit: Invalid argument

osxでulimitをさらに増やすにはどうすればよいですか?

4

3 に答える 3

67

(いくつかのコメンターが提案したように、回答は -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
于 2011-09-28T08:18:30.167 に答える
2

root として実行してみてください (たとえば、ulimit コマンドとプログラムを実行する前に「sudo -s」を実行してください)。

一度に 100 万以上の TCP ソケットを実際に実現できるかどうかはわかりません (ただし、試してみるとどうなるかを聞くのは興味深いです ;^))

また、こちらもご覧ください。

于 2011-09-28T06:41:01.250 に答える