Seit einigen Tagen haben wir immer größer werdende Performanceprobleme mit unserem Webserver.
Unsere Situation ist folgende:
Die Seite fängt meistens erst nach ~10 Sekunden an zu laden, wenn sie läd dann läd sie relativ fix zuende. Man hängt also (so vermute ich) einfach zulange in der Warteschlange bis man von einem Prozess bedient wird.
Die Seite ist sehr Datenbankintensiv, dafür steht aber ein eigener MySQL Server neben dem Webserver, dieser ist aber eher weniger stark ausgelastet (30%CPU und 1,5 von 2gb ram).
Der Apacheserver benutzt das prefork-Modell, eine Umstellung auf Worker ist geplant, hat bisher aber noch nicht wirklich geklappt :/
Hier ein Auszug aus dem Serverstatus:
So ungefähr schaut es wirklich 24/7 aus.Server uptime: 18 minutes 24 seconds
Total accesses: 301977 - Total Traffic: 1.5 GB
CPU Usage: u125.88 s30.6 cu0 cs0 - 89.9% CPU load
274 requests/sec - 1.4 MB/second - 5.3 kB/request
400 requests currently being processed, 0 idle workers
Das wohl wichtigste aus der Apache Config:
top vom Webserver spuckt das hier aus:Timeout 30
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 2
<IfModule mpm_prefork_module>
StartServers 3
MinSpareServers 5
MaxSpareServers 30
ServerLimit 400
MaxClients 400
MaxRequestsPerChild 5000
</IfModule>
Code: Select all
top - 15:56:01 up 9:42, 1 user, load average: 3.50, 3.95, 3.68
Cpu(s): 39.1%us, 5.5%sy, 0.0%ni, 44.4%id, 5.1%wa, 1.8%hi, 4.1%si, 0.0%st
Mem: 2028012k total, 1448688k used, 579324k free, 55240k buffers
Swap: 3903752k total, 28k used, 3903724k free, 259080k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
25011 www-data 17 0 98.0m 9.9m 4728 S 2 0.5 0:00.75 apache2
[...]
Wir haben also 2 Rootserver zur Verfügung, beide haben einen 5000+ und 2GB RAM. Der Webserver bekommt warscheinlich bald nochmal +2GB Ram.
Laut Firebug braucht eine Seite ungefähr 13 requests, davon 5 .js (optimierungswürdig?).
Hat jemand einen Vorschlag, wie wir vorgehen könnten um dieses Problem zu beheben? Oder hilft da wirklich nur Aufrüsten/Cluster aufbauen um soviele Anfragen zu bearbeiten? Unser Budget reicht leider nicht um eine ganze Serverfarm aufzukaufen :)
Falls ich immernoch zu wenig Infos gegeben hab, bitte bescheid sagen.
MySQL arbeitet sehr zufriedenstellend und hat noch etwas Spielraum nach oben.
Gerne würde ich auch per ICQ/MSN/Irc mit jemandem plaudern der wirklich Ahnung von solchen Problemen hat.
lG
