Apache,mysql,WBB + Performance-Probleme

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
dm
Beiträge: 34
Registriert: 12.08.2003 23:39:28
Wohnort: Waltrop

Apache,mysql,WBB + Performance-Probleme

Beitrag von dm » 12.08.2003 23:41:28

Hallo!
Also ich hab da ein "kleines" Problem. Ein Freund von mir hat einen Root-L Server bei 1&1 auf dem ein Forum läuft, u.a. mit folgender Software:
  • apache 1.3.27
    mysql 3.23.52
    Woltlab BurningBoard 2.1.1
Wenn der Apache und mysql neu gestartet werden, dann bleibt der Load für ein paar Stunden unter 1. Nach ein paar Stunden steigt der Load dann immer weiter an, es öffnen sich immer mehr httpd/mysql Prozesse (bei gleicher User-Zahl auf dem Board! ca. 30-50 User)

Code: Alles auswählen

 9:28pm  up  5:27,  1 user,  load average: 12.56, 10.26, 6.85
69 processes: 62 sleeping, 7 running, 0 zombie, 0 stopped
CPU states:  6.5% user,  3.9% system,  0.0% nice, 89.4% idle
Mem:   248500K av,  243892K used,    4608K free,       0K shrd,    1516K buff
Swap:  265064K av,  152784K used,  112280K free
Der Load bleibt dann bei diesen Werten stehen oder steigt sogar noch weiter an. Das Forum ist dadurch natürlich ziemlich langsam. Meistens hilft dann nur noch ein Neustart des Indianer. Ich versteh das nicht so recht, da die CPU-Auslastung doch relativ gering ist und auf der Swap-Partition auch noch was frei zu sein scheint.
Woran kann das liegen? Hab's schon mit einem ulimit versucht. Außerdem hab ich es mit verschiedenen Einträgen in den jeweilligen Configs ausprobiert. Allerdings ohne Erfolg. Hier mal ein Auszug aus den (aktuellen) Config-Dateien:
httpd.conf

Code: Alles auswählen

MaxKeepAliveRequests 150
KeepAliveTimeout 15
MinSpareServers 10
MaxSpareServers 15
StartServers 15
MaxClients 250
MaxRequestsPerChild 10000
my.cnf

Code: Alles auswählen

set-variable    = key_buffer=20M
set-variable    = max_allowed_packet=1M
set-variable    = table_cache=64M
set-variable    = sort_buffer=2M
set-variable    = net_buffer_length=8K
set-variable    = myisam_sort_buffer_size=8M
set-variable    = max_connections=250
log-bin
server-id       = 1
[isamchk]
set-variable    = key_buffer=20M
set-variable    = sort_buffer=20M
set-variable    = read_buffer=2M
set-variable    = write_buffer=2M
[myisamchk]
set-variable    = key_buffer=20M
set-variable    = sort_buffer=20M
set-variable    = read_buffer=2M
set-variable    = write_buffer=2M
Hat jmd. von Euch evtl. noch einen Vorschlag parat? Sind noch mehr Infos von Nöten?
Bin über jede Hilfe dankbar.

MfG
dm

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 13.08.2003 16:32:06

Ich kenne Burning Board nicht, das vorab...

Versuch 'mal rauszufinden, was die ganzen Indianer die da so rumfliegen gerade machen. Dazu könnte "apachectl status", "lsof" und Co. ganz hilfreich sein. Aus Deiner Beschreibung würde ich sagen, dass da irgendwelche PHP Seiten nicht zu Ende bearbeitet werden. Daher bleibt der zuständige Apache Prozess dann ewig da liegen, und blockiert natürlich die, die wirklich noch was zu tun haben...

Das error.log könnte auch noch Hinweise enthalten. Versuch 'mal mit lsof herauszufinden, ob viele Apaches die gleiche PHP Seite offenhalten, das wäre dann wahlscheinlich der Übeltäter...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

dm
Beiträge: 34
Registriert: 12.08.2003 23:39:28
Wohnort: Waltrop

Beitrag von dm » 13.08.2003 17:36:24

Dank dir. Wenn der Load das nächste mal in die Höhe schiesst, werd ich drauf achten und mich ggf. dann nochmal hier zu Wort melden :-)

rygel
Beiträge: 5
Registriert: 14.08.2003 12:04:06

Re: Apache,mysql,WBB + Performance-Probleme

Beitrag von rygel » 14.08.2003 12:47:34

Hi Du,
dm hat geschrieben: 9:28pm up 5:27, 1 user, load average: 12.56, 10.26, 6.85
69 processes: 62 sleeping, 7 running, 0 zombie, 0 stopped
CPU states: 6.5% user, 3.9% system, 0.0% nice, 89.4% idle
Mem: 248500K av, 243892K used, 4608K free, 0K shrd, 1516K buff
Swap: 265064K av, 152784K used, 112280K free
[/code]
Die 89.4% idle scheinen mir ein wenig arm für die hohe Load. Da der Speicher an sich nicht zu schlecht aussieht und 30-50 User auf nem WBB Board (oder Community Patch?) nicht allzuviel scheint... würde ich normalerweise auf ein I/O Problem tippen - schön mit 'apt-get install vmstat' - 'vmstat' zu sehen (bi/bo = blocks in / blocks out)...

Aber:

Code: Alles auswählen

MinSpareServers 10
MaxSpareServers 15
StartServers 15
... gibt immer wieder Probleme. Weder MinSpare noch MaxSpare sollten nahe am StartServer Wert liegen - und der Bereich sollte eine um so breitere Streuung besitzen je mehr Aktivität auf dem Server ist. Mit 30-50 Usern auf dem Board seid ihr gerade in dem Bereich in dem der Apache die ganze Zeit mit Spare Server Erstellen und Deaktivieren beschäftigt ist...

Mach doch mal

Code: Alles auswählen

MinSpareServers 10
MaxSpareServers 30
StartServers 20
... vielleicht gibt sich die wilde Forkerei dann...

Hilfreich wären wie gesagt, ein paar Werte aus

vmstat

free -m

top (die ersten 5 Zeilen der normalen Ansicht und die ersten 5 Zeilen der 'T' Ansicht der verwendeten Rechenzeiten)

Grüße,
Peter

dm
Beiträge: 34
Registriert: 12.08.2003 23:39:28
Wohnort: Waltrop

Beitrag von dm » 14.08.2003 15:26:18

Hi rygel,

die httpd.conf hab ich deinen Tipps zufolge geändert. Außerdem hab ich in der php.ini persistente Verbindungen vorläufig deaktiviert. Irgendwie hab ich so das Gefühl, dass es daran liegt bzw. das irgendwelche Prozesse/Abfragen nicht sauber geschlossen werden und dadurch hängenbleiben.

Bis jetzt schaut es auch ganz gut aus. httpd und mysql laufen jetzt schon seit mehreren Stunden und der load steigt nur kurzzeitig über eins, geht aber auch ziemlich flott wieder auf <1. Wahnsinn . . . ;-)

Sollte es in der nächsten Zeit trotzdem wieder zu Problemen kommen, werde ich die Ausgaben von vmstat, free und top hier posten.

Aber danke schonmal :-)

Gruß
Dennis

Antworten