limits.confで設定しているnprocが反映されないときのお話
概要
vagrant上のCentOS6.7にて、
/etc/security/limits.confまたは/etc/security/limits.d/90-nproc.confにプロセス上限数を設定後、
ulimit -uで値を確認してみても設定した値を下回った値が設定されていた。
具体的にいうと、
/etc/security/limits.d/90-nproc.conf
* soft nproc 8192
設定値確認
$ ulimit -Su 1868
設定きいてねええええと発狂していたらあることに気付く。。
気付いたこと
sysctlにもスレッド数(プロセス数)の最大値が指定してあったような・・?
sysctl確認
$ sysctl -a | grep kernel.threads-max kernel.threads-max = 3737
おうふ。。
limits系のnproc設定値は、kernel.thread-maxで設定した値/2を超えられないようだ。
なんで割る2となるのかはよくわからないが(だれかおしえてーー)
なおkernel.threads-maxの値はデフォルトでマシンが積んでるメモリに合わせてちょうどいい感じの値が設定されているようなので、
このへんあまり理解していない人(主に自分のこと)は適当にいじらないほうがよさそう。
おとなしくvm自体に割り振ってるメモリを多めにして解決したほうがよさげなきがした。