FreeBSD QandA 152

FreeBSD QandA

Q. プロセスを60くらい立ち上げたあたりから、新しくプロセスを起動しよう
   とすると、
    % less foo.gz 
    No more processes.
    No more processes.
    "foo.gz" may be a binary file.  See it anyway? 
   と言われてしまいます。カーネルの NPROC の値は
    MAXUSERS=5
    #define NPROC (40 + 32 * MAXUSERS)
   と設定しているので、十分だと思いますが、どうしてでしょうか。

A. NPROCの数は、全プロセスの上限値であって、ひとりのユーザが使用できる
   プロセスの上限ではありません。通常、ひとりのユーザが実行できるプロセス
   数には上限値が設定されており、
   	sh(bash)	ulimit
   	csh(tcsh)	limit
   の各コマンドで変更できます。

   また、systat を利用すれば、その時点でのシステムの利用情報を得ることが
   できます。詳しくは man systat を見てください。

   1ユーザ当たりのプロセスのソフトリミットを変える方法はカーネルのリコン
   フィグしか知りません。(3.0系では/etc/login.confというファイルでソフト
   リミットを変えられるそうです)自分は
   options		CHILD_MAX=128
   ついでに、、、
   options		OPEN_MAX=128
   を指定しています。これでソフトリミットが128になります。

   sysctlコマンドでも 変更出来ると思います。

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。