httpdをたくさん起動する
RHEL4でhttpdが256プロセスまでしか上がらないとか。
原因を調べたいのでCentOSでテストしてみる。
[motchang@youpandora ~]$ cat /etc/redhat-release CentOS release 4.8 (Final)
[motchang@youpandora ~]$ uname -a Linux youpandora.motchang.myhome.cx 2.6.9-89.0.11.EL #1 Tue Sep 15 06:58:11 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
max user processesを確認ン〜。
[motchang@youpandora ~]$ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited file size (blocks, -f) unlimited pending signals (-i) 1024 max locked memory (kbytes, -l) 32 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 16370 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
max user processesの値が最初から大きい。フェドーラは1024だったのに。
StartServers 2048 MinSpareServers 5 MaxSpareServers 20 ServerLimit 2048 MaxClients 2048 MaxRequestsPerChild 4000
この設定が妥当ではない。
プロセスを大量に上げたいだけなので。
/etc/init.d/httpd start
topの表示がこんなん
top - 15:45:25 up 8 min, 1 user, load average: 0.68, 0.25, 0.13 Tasks: 2092 total, 1 running, 2090 sleeping, 0 stopped, 1 zombie Cpu(s): 2.9% us, 2.6% sy, 0.0% ni, 94.5% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 2057360k total, 1182148k used, 875212k free, 10952k buffers Swap: 2096472k total, 0k used, 2096472k free, 64672k cached
あ、スワップアウトしすぎてマシンに触れなくなった…。
1024プロセスにして再度チャレンジ
top - 16:02:46 up 5 min, 1 user, load average: 0.05, 0.16, 0.09 Tasks: 1030 total, 1 running, 1028 sleeping, 0 stopped, 1 zombie Cpu(s): 2.0% us, 2.0% sy, 0.0% ni, 96.1% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 2057360k total, 660116k used, 1397244k free, 22176k buffers Swap: 2096472k total, 0k used, 2096472k free, 64192k cached
[root@youpandora ~]# ps -aef | grep httpd | wc -l 1026
なんだ動くじゃないか。
なんでその環境だと上がらないのだろうか。