Zu viele HTTPD-Prozesse (Apache2)

L

lexrox

Guest
Hi,

seit kurzem besucht mich regelmaessig ein Gast auf einer meiner Seiten und kann es einfach nicht lassen, mehrmals und schnell hintereinander den Reload-Button seines Browsers zu betaetigen. Aufgrund dessen entstehen unzaehlige HTTPD-Prozesse und der ganze Server (4x Xeon 2.4 GHz, >2GB RAM) haengt sich mehr oder weniger auf. Besser gesagt: Er ist erstmal fuer eine ganze Weile beschaeftigt und macht keinen Jucks mehr, bis er alles abgearbeitet hat. Waehrend dieser Zeit sind natuerlich keine Seiten auf dem Server erreichbar, und genau das muss verhindert werden. Ich habe mich schon Google bedient und die unterschiedlichsten Konfigurationen zu MinSpareServers, MaxSpareServers, MaxClients und MaxRequestsPerChild gefunden. Es war aber nichts dabei was dieses Problem loesen kann. Zusaetzlich zu den HTTPD-Prozessen laufen auch MySQL-Prozesse, da die besagte Seite (ein Woltlab-Board) auf MySQL aufbaut. Ich habe schon aehnliche Seiten gesehen welche auf eine solche Attacke dem Client mehr oder weniger den Mittelfinger zeigen; denen juckt das zig mal reloaden nicht.

Ist jemandem eine Moeglichkeit bekannt um zu erreichen, dass derartige "Reload-Attacken" den Server kaum bis gar nicht beinflussen?

Vielen Dank euch allen.

MfG
lexrox
 
mod_throttle ist eventuell auch interessant - ansonsten hilfts je nach Umgebungsparametern auch ab und zu mal keepalive abzuschalten (wobei sich das hier eher nicht so anhört)
Mit server-status sollte herauszufinden sein, was dein apache denn da genau macht (wartet er auf irgendwas, liest auf der Platte oder liefert er was aus...) an den entsprechenden Stellen kann dann geschraubt werden.
Kannst Du das Verhalten auch mit einfach reloads in einem Browser reproduzieren?
Eventuell liegt das Problem auch nicht bei Apache sondern daran, daß zu MySQL einfach nicht genug Verbindungen parallel aufgebaut werden können, so daß der Apache einfach wartet bis das wieder geht... aber ich kenne die Board-Software nicht...

Gruß,
Andreas
 
lexrox schrieb:
Hi,

seit kurzem besucht mich regelmaessig ein Gast auf einer meiner Seiten und kann es einfach nicht lassen, mehrmals und schnell hintereinander den Reload-Button seines Browsers zu betaetigen. Aufgrund dessen entstehen unzaehlige HTTPD-Prozesse und der ganze Server (4x Xeon 2.4 GHz, >2GB RAM) haengt sich mehr oder weniger auf. Besser gesagt: Er ist erstmal fuer eine ganze Weile beschaeftigt und macht keinen Jucks mehr, bis er alles abgearbeitet hat. Waehrend dieser Zeit sind natuerlich keine Seiten auf dem Server erreichbar, und genau das muss verhindert werden. Ich habe mich schon Google bedient und die unterschiedlichsten Konfigurationen zu MinSpareServers, MaxSpareServers, MaxClients und MaxRequestsPerChild gefunden. Es war aber nichts dabei was dieses Problem loesen kann. Zusaetzlich zu den HTTPD-Prozessen laufen auch MySQL-Prozesse, da die besagte Seite (ein Woltlab-Board) auf MySQL aufbaut. Ich habe schon aehnliche Seiten gesehen welche auf eine solche Attacke dem Client mehr oder weniger den Mittelfinger zeigen; denen juckt das zig mal reloaden nicht.

Ist jemandem eine Moeglichkeit bekannt um zu erreichen, dass derartige "Reload-Attacken" den Server kaum bis gar nicht beinflussen?

Vielen Dank euch allen.

MfG
lexrox

die specs der kiste sehen ziemlich heftig aus. kaum zu glauben, dass ein paar mal reload da solchen aerger macht. das deutet doch ziemlich darauf hin, dass das problem woanders liegt. ich wuerde auch auf so etwas wie verbindungslimits tippen, denn wenn ein 4fach(!) xeon mit dem bearbeiten der requests nicht hinterherkommt, dann glaube ich kaum, dass ein einzelner user einen grossteil der load ausmachen kann.

kannst du denn cpu und i/o ausschliessen? top(1), iostat(1), wie "fuehlt" sich das system an, wenn der webserver keine requests mehr ausliefert? schau, ob der mysql (evtl mit erhoehtem debuglevel) irgendwas von max. connections labert.
 
Zurück
Oben