Wir haben eine Site mit mäßigem Datenverkehr (ungefähr 20.000 Zugriffe pro Tag), auf der eine PHP / MySQL-App auf Apache 2.2, Ubuntu 9.10 Server, von einer Amazon EC2 c1.small-Instanz (1,7 GB RAM) ausgeführt wird.
Wir hatten Probleme mit der Website, die wiederholt nicht mehr reagierten. Als schmutzigen Hack habe ich MaxClients / ServerLimit auf 450 gesetzt.
<IfModule mpm_prefork_module>
KeepAlive On
KeepAliveTimeout 7
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 450
ServerLimit 450
MaxRequestsPerChild 0
</IfModule>
Die Seite scheint länger zu dauern als zuvor, stirbt aber immer noch. Ich überprüfe die Liste der Prozesse, die ich habe (dritte Spalte ist physisches Mem, vierte Spalte ist virtuelle Größe):
xxxxxxxxx@domU-XXXXXXXXX:/etc/apache2$ ps -eo pid,user,rss,vsz,args | grep apache
2333 root 11092 39084 /usr/sbin/apache2 -k start
3704 www-data 11060 41292 /usr/sbin/apache2 -k start
3826 www-data 10016 39844 /usr/sbin/apache2 -k start
3954 www-data 11976 41612 /usr/sbin/apache2 -k start
4061 www-data 11844 41668 /usr/sbin/apache2 -k start
4064 www-data 10988 40676 /usr/sbin/apache2 -k start
4084 www-data 11804 41428 /usr/sbin/apache2 -k start
4086 www-data 10192 39828 /usr/sbin/apache2 -k start
4099 www-data 11876 41748 /usr/sbin/apache2 -k start
4100 www-data 10980 40668 /usr/sbin/apache2 -k start
4102 www-data 8952 39724 /usr/sbin/apache2 -k start
4107 www-data 11856 41860 /usr/sbin/apache2 -k start
4108 www-data 9952 39604 /usr/sbin/apache2 -k start
4109 www-data 0 0 [apache2] <defunct>
4114 www-data 7172 39724 /usr/sbin/apache2 -k start
4115 www-data 10968 40668 /usr/sbin/apache2 -k start
4122 www-data 11888 41844 /usr/sbin/apache2 -k start
4123 www-data 11584 41444 /usr/sbin/apache2 -k start
4124 www-data 7036 39596 /usr/sbin/apache2 -k start
4125 www-data 6744 39084 /usr/sbin/apache2 -k start
4126 www-data 9532 39552 /usr/sbin/apache2 -k start
4127 www-data 10112 39812 /usr/sbin/apache2 -k start
4128 www-data 6600 39084 /usr/sbin/apache2 -k start
4129 www-data 6736 39084 /usr/sbin/apache2 -k start
4130 www-data 7004 39596 /usr/sbin/apache2 -k start
4131 www-data 6740 39084 /usr/sbin/apache2 -k start
4132 www-data 11616 41596 /usr/sbin/apache2 -k start
4134 www-data 7024 39588 /usr/sbin/apache2 -k start
4135 www-data 11808 41516 /usr/sbin/apache2 -k start
4136 www-data 7008 39460 /usr/sbin/apache2 -k start
4137 www-data 6988 39460 /usr/sbin/apache2 -k start
4139 1003 796 3040 grep --color=auto apache
victorhooi@domU-12-31-39-02-B6-34:/etc/apache2$
Gibt es eine einfache Möglichkeit herauszufinden, was genau los ist? Mein Verständnis von Apaches Innereien ist nicht so gut, aber ich hätte gedacht, dass wir nicht so viele gleichzeitige Prozesse benötigen würden, um eine Seite wie diese mit dieser Art von Verkehr zu versorgen. Wir haben die App geerbt, daher wissen wir nicht viel über ihre Innenseiten, aber es ist eine ziemlich einfache CMS-Site, die einige Suchergebnisse zeigt. Ich hätte nicht gedacht, dass sie diese Art von Grunzen brauchen würde.
Ich bin gegen die Site gelaufen, ich hatte eine ziemlich schlechte Anfragerate (weit unter 50 pro Sekunde), aber das war möglicherweise meine schlechte Wahl der Einstellungen - viele dieser Anfragen schienen fehlzuschlagen.
Wo sollte ich nach Informationen über das Geschehen oder nach Tipps zur Fehlerbehebung suchen, die ich versuchen könnte?
Prost, Victor