cat /proc/<pid>/limits
コマンドを使用して最大オープンファイルのハード制限とソフト制限を確認しましたが、この値がどのように設定され、増減できるかを知りたいですか?
この値はいくつかの構成ファイルで設定されていますか?
ulimit
コマンドを試しましたが、特定のプロセスの制限を設定するのに役立ちません。
# ulimit -n 2048
しかし、それでも1024が表示されています
# cat /proc/<pid>/limits
..
Max open files 1024 4096 files
..
同様の質問がされることは知っていますが、これ以上の答えは見つかりません。
util-linux
パッケージがインストールされている場合は、prlimit
コマンドを使用して特定のプロセスにハード制限とソフト制限を設定します。コマンドcommand
に対して、開いているファイルの最大数のソフト制限とハード制限をそれぞれ10と20に設定するには、次のコマンドを実行します。
prlimit -n10:20 command
コマンドの引数も提供できます。
prlimit -n10:20 command arg1 arg2 ...
詳細については、man prlimit
を参照してください。
注:他の多くのUnixコマンドとは異なり、prlimit
はオプションと引数の間にスペースを入れません。したがって、-n10:20
は機能しますが、-n 10:20
は機能しません。
デーモンについて話している場合は、initスクリプトでulimt -n $your_number
を指定できます。すでに実行中のプロセスで再起動できない場合は、prlimit
John1024の提案のように を使用します。