Hohe Serverlast & Performanceprobleme

Apache, Lighttpd, nginx, Cherokee
Anonymous

Hohe Serverlast & Performanceprobleme

Post by Anonymous » 2007-09-26 16:31

Hallo zusammen,

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:
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

So ungefähr schaut es wirklich 24/7 aus.

Das wohl wichtigste aus der Apache Config:
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>

top vom Webserver spuckt das hier aus:

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
[...]


Mit den Werten haben wir auch schon ein wenig rumgetestet, eine deutliche Besserung konnten wir aber leider nicht erreichen.
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

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Hohe Serverlast & Performanceprobleme

Post by Joe User » 2007-09-26 17:35

Code: Select all

Timeout 300
KeepAlive On
KeepAliveTimeout 1
MaxKeepAliveRequests 15
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild 500
</IfModule>
<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxRequestsPerChild 500
</IfModule>
LoadModule deflate_module modules/mod_deflate.so
<Location "/">
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/xml application/xhtml+xml
</Location>

http://www.rootforum.org/forum/view ... 400#290400