2010年1月25日

rhelで1ユーザあたりのプロセス数制限はできますか?

直接的な制限はPIDの個数になり、40億以上のプロセスが同時に実行可能です。
実際的にはメモリ使用量が問題になり、たとえば1つのプロセスで4MB消費すると
仮定すると128GB搭載でも32768個のプロセスが同時に実行可能です。

個別のユーザへのlimitについては、ulimitという仕組みにより可能です。
ulimitはシェルの組み込みコマンドで
ulimit -H -u 100

のような指定をすることで、そのユーザが同時に動作させることができる
プロセスの数を制限できます。(この例では100個に制限しています)

この設定をログイン時に強制したい場合は、
/etc/security/limits.conf ファイルに設定を記述します。
同時にopenできるファイルの数の制限を変更する例が以下のknowledge base
エントリで紹介されています。
http://kbase.redhat.com/faq/docs/DOC-2062

上記例の中で nofile(number of file)となって
いるものを nproc (number of process) に置換し、適切な
数を指定することで、一人のユーザあたりのプロセス数を制限することができま
す。


この時に利用されるのは pam_limits とよばれるPAMのモジュールです。
記述方法の詳細については man limits.conf をごらんください。

0 件のコメント:

コメントを投稿