
200個のプロセスを実行していますが、ulimit -u
400個がいくつかの問題を引き起こしているようです。
$ ps -A | wc -l
199
$ ulimit -u 400
zsh: fork failed: resource temporarily unavailable
混乱しています。制限に達した理由は何ですか?
編集する:最初にulimit -u
与えられた
$ ulimit -u
47334
答え1
Linuxで糸数には含まれますulimit -u
が、通常は表示されませんps -A
。L
フラグを追加する必要があります。
たとえば、私のコンピュータでは次のようになります。
% ps -A | wc -l
124
% ps -AL | wc -l
155
31の追加プロセスが実行されていることがわかります。これは通常、ビューに隠されているスレッドです。
Javaやその他の高度にスレッド化されたアプリケーションを使用すると、思ったよりも多くのスレッド/プロセスを簡単に実行できます。あなたのulimit -u
価値はこれを考慮するべきです。
ulimit
これは、デフォルトでは、次の設定に付属のRedHatシステムで多くのJavaアプリケーションを実行している人に予期せず影響を与える可能性があります。
% cat /etc/security/limits.d/20-nproc.conf
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 4096
root soft nproc unlimited