システム全体で使えるスレッド数の最大値を上げる
システム全体での最大プロセス数(プロセス数+スレッド数)は、threads-max の値で決まる。(Linuxカーネルからは、スレッドもプロセスのように見える)
この値を超えるプロセスは生成できないので必要に応じて十分な値を取る必要があるかもしれない。ただし、threads-maxのデフォルトの数値はメモリ量に合わせて起動時に計算された値となっている。ちなみにうちの環境では以下の値だった。
$ cat /proc/sys/kernel/threads-max 15871
とりあえず、テストとして値を3倍にしてみる。変更方法は、/etc/sysctl.conf に以下のように追記する。
$ sudo vi /etc/sysctl.conf ... # システム全体での最大プロセス数 kernel.threads-max = 47613 ← 追記 編集後は以下のコマンドで設定を反映させる。 $ sudo sysctl -p 再び、値を確認してみる。 $ cat /proc/sys/kernel/threads-max 47613
なお、ユーザ1人あたりが使用できるプロセス数の上限値は以下で確認できる。
$ ulimit -u 7935
/etc/security/limits.conf に以下のように追記すれば、各ユーザのプロセス数の上限値を変更できる。
$ sudo vi /etc/security/limits.conf ... # プロセス数の上限値 chibi soft nproc 10000 ←追記 chibi hard nproc 15000 ←追記 # End of file
ここではchibiユーザのソフトリミットを10000に、ハードリミットを15000に設定した。一旦ログアウトしてから、値が変更されていることを確認してみる。
$ ulimit -u 10000