2011-06-27 10:56:47 +0000 2011-06-27 10:56:47 +0000
102
102

Snow Leopard で開くファイル記述子の最大数を増やす?

sudo ulimit -n 12288 は、Snow Leopard が望む限りの高さで、これを超えると

/usr/bin/ulimit: line 4: ulimit: open files: cannot modify limit: Invalid argument.

100000 といったもっと高い数値を上げたいのですが、可能でしょうか?これは可能でしょうか?

回答 (4)

95
95
95
2011-06-27 21:17:50 +0000

ulimit コマンドを使うと、現在のシェルとその子孫のリソース制限を変更するだけで、sudo ulimit はルートシェルを作成し、制限を調整してから終了します (私が見た限りでは、実際には何の効果もありません)。
12288を超えるためには、カーネルのkern.maxfileskern.maxfilesperprocのパラメータを調整する必要がありますし、(少なくとも このブログ記事 によると、 この議論 をまとめたものです) launchdの制限も調整する必要があります。

sudo launchctl limit maxfiles 1000000 1000000

これを恒久的なものにするには(つまり再起動時にリセットされないようにするには)、

limit maxfiles 1000000 1000000

を含むlaunchctl limitを作成してください_その後、/etc/launchd.conf(ただし、ulimitを含まない)を使ってプロセス制限を調整することができます。

0x1&

_その後、sudo (ただし、0x6& を使用しない) を使用してプロセス制限を調整することができます。お使いのモデルがそれをサポートしている場合は、 64ビットモード でカーネルを起動することで解決するかもしれません。

42
42
42
2012-12-03 12:07:46 +0000

以下の方法でほとんどの解決策が解決されるはずです(階層順に記載しています)。

1.これらの変更を有効にするには再起動が必要です。 2. 2. AFAIKでは、OS Xでは'unlimited'に制限を設定することはできません。ulimit はデフォルトで launchctl の ‘open files’ 値を継承しているようです 6. /etc/profile や ~/.profile 内でカスタム ulimit を設定することができます。デフォルトと比較した場合、これらの値のいずれかを非常に高い数値に設定する場合は注意が必要です - 機能は安定性/セキュリティが存在します。私は他のウェブサイトに書かれている、私は合理的であると信じているこれらの例の数字を取ってきました。

20
20
20
2011-12-10 10:11:12 +0000
% sudo launchctl limit maxfiles 8192 unlimited
Neither the hard nor soft limit for "maxfiles" can be unlimited. Please use a numeric parameter for both.

ソフトリミットとハードリミットの両方に数値を与えると、OS X Lionは “unlimited "を値として許可しないようです。

3
3
3
2018-12-21 14:43:27 +0000

OS X 10.13.6**では、これで動作します。

$ 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