You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Jochen Grünter <li...@gruenter.com> on 2009/03/12 12:37:48 UTC

Lastspitzen Abfangen

Hallo liebe Liste,

ich betreue einen kleinen Server (AMD Athlon 64 3700+, 1GB RAM) auf
dem ein paar Seiten vor sich hin dümpeln. Die Einstellungen des Apache
stehen (besser standen, dazu später mehr) auf default.

Gestern ist nun der GAU passiert, als ein äußerst bekanntes online
Magazin einen direkten Link auf eine auf diesem Server gelagerte
Wordpress Seite setzte mit dem Hinweis, dass dort weitere
Informationen wären. Das Ergebnis war, dass der Server völlig in die
Knie gegangen ist.
Die Frage ist nun, an welchen Werten kann ich schrauben, ohne dass der
Server gleich wieder zusammen bricht.

Aktuell sind eingestellt:
Timeout 100
KeepAlive On
MaxKeepAliveRequests 500
KeepAliveTimeout 5

<IfModule mpm_prefork_module>
        StartServers            5
        MinSpareServers         5
        MaxSpareServers         8
        MaxClients              16
        MaxRequestsPerChild     248
</IfModule>

-- 
Danke für Eure Hilfe,
Jochen


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: Lastspitzen Abfangen

Posted by Peter Hinse <lo...@d0pefish.de>.
Jochen Grünter schrieb:

> Die Frage ist nun, an welchen Werten kann ich schrauben, ohne dass der
> Server gleich wieder zusammen bricht.

Alternativ bietet auch wordpress diverse Möglichkeiten, Dinge zu cachen
und dann statisch auszuliefern.

Gruß,

	Peter

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: Lastspitzen Abfangen

Posted by Vladislav Vorobiev <my...@googlemail.com>.
Hallo,

ich würde über ein caching konzept nachdenken. Apache bringt auch ein
mod_cache mit.
http://httpd.apache.org/docs/2.2/mod/mod_cache.html

Vlad

Am 12. März 2009 12:37 schrieb Jochen Grünter <li...@gruenter.com>:
> Hallo liebe Liste,
>
> ich betreue einen kleinen Server (AMD Athlon 64 3700+, 1GB RAM) auf
> dem ein paar Seiten vor sich hin dümpeln. Die Einstellungen des Apache
> stehen (besser standen, dazu später mehr) auf default.
>
> Gestern ist nun der GAU passiert, als ein äußerst bekanntes online
> Magazin einen direkten Link auf eine auf diesem Server gelagerte
> Wordpress Seite setzte mit dem Hinweis, dass dort weitere
> Informationen wären. Das Ergebnis war, dass der Server völlig in die
> Knie gegangen ist.
> Die Frage ist nun, an welchen Werten kann ich schrauben, ohne dass der
> Server gleich wieder zusammen bricht.
>
> Aktuell sind eingestellt:
> Timeout 100
> KeepAlive On
> MaxKeepAliveRequests 500
> KeepAliveTimeout 5
>
> <IfModule mpm_prefork_module>
>        StartServers            5
>        MinSpareServers         5
>        MaxSpareServers         8
>        MaxClients              16
>        MaxRequestsPerChild     248
> </IfModule>
>
> --
> Danke für Eure Hilfe,
> Jochen
>
>
> --------------------------------------------------------------------------
>                Apache HTTP Server Mailing List "users-de"
>      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
>           sonstige Anfragen an users-de-help@httpd.apache.org
> --------------------------------------------------------------------------
>
>



-- 
Best Regards
Vlad Vorobiev

http://mymir.ru/

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: Lastspitzen Abfangen

Posted by Martin Ebert <ma...@wb-online.de>.
Liebe Liste,

Ingrid hatte noch einen in derartigen Situationen sehr
wichtigen Punkt vergessen:

Soweit man Bilder (gig, jpeg) für das Angebot benötigt:
Dann sollten diese (statisch - klar) von einem völlig anderen
Server "bezogen" - ausgeliefert werden: Die sollten dann
keinesfalls mehr über den eigenen Server laufen.

Es sollte klar sein - warum.

Martin

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: Lastspitzen Abfangen

Posted by Martin Ebert <ma...@wb-online.de>.
Hallo Jochen, liebe Liste,

> ich betreue einen kleinen Server (AMD Athlon 64 3700+, 1GB RAM) auf
> dem ein paar Seiten vor sich hin dümpeln.

Ahne ich, um welchen Server es ging?

Na egal - in dieser Liste geht es nur um fachliches.

> Gestern ist nun der GAU passiert, als ein äußerst bekanntes online
> Magazin einen direkten Link auf eine auf diesem Server gelagerte
> Wordpress Seite setzte mit dem Hinweis, dass dort weitere
> Informationen wären. Das Ergebnis war, dass der Server völlig in die
> Knie gegangen ist.

Was man wohl Heise-DOS bzw SpOn-DOS nennt.

Dein Frageansatz ist aus meiner bescheidenen Sicht schon falsch:
Im ersten Schritt müssen die Eskalationsstufen betrachtet werden -
erst im zweiten Schritt kann man über Lösungen reden.
Ich behaupte, dass ich in relativ verschiedenen Situationen das schon
mehrfach erlebt habe - ich möchte die realen Hintergründe aber nicht
öffentlich erörtern.

Realistisch betrachtet - hat man aber ein ganz anderes Problem:
Der Link hat die Situation nur scheinbar verschärft: unvermutet ist
das Angebot im breiten Interesse der Öffentlichkeit. Das hat aber
weniger damit zu tun, dass SpOn verlinkte - sondern eher mit den
eigenen Inhalten: Die scheinen ja (Eskalation; vgl unten) sehr
viele Menschen aktuell zu interessieren.

Im Grundsatz dümpelt der Server so vor sich hin. Dabei ist es egal, ob
mit 30 oder 30.000 Hits am Tag. In der ersten Phase bricht der Server
schon zusammen - da kommen dann Requestmengen, die den Faktor 1.000
gern auch mal übersteigen. Und die zweite Phase bekommt man normaler-
weise dann gar nicht mehr mit: In der Plateauphase ist das nochmal
den Faktor 10..100 höher. Aber die Mühle ist ja schon platt. Die
dritte -abschwellende- Phase ist dadurch gekennzeichnet, dass die
Requests sehr langsam auf hohem Niveau sinken. Typisch sind dabei
zwei..drei Wochen.

Nun kommt es darauf an, über was wir inhaltlich überhaupt reden: Falls
es in irgend einer Weise um Menschenleben (Server von Behörden bzw.
Hilfsdiensten) geht: Dann muss das Angebot sehr schnell wieder online.
In allen anderen Fällen ist das Hauptaugenmerk auf die abschwellende
Phase gerichtet.

Wir sind immer noch nicht bei den technischen Details:
Der allererste Schritt ist: Die Kiste muss *sofort* vom Netz!
   -> Netzwerkstecker ziehen. Physikalisch trennen.
Der zweite Schritt ist: Durchatmen.
Der dritte Schritt ist: Nachdenken.

Nach meinen -bescheidenen- Erfahrungen muss dann zunächst das
Angebot auf dem abgeklemmten Server verändert werden: Es bleibt nur
(und *nur*!) das erreichbar, was das Objekt der Begierde ist.

Sodann ist ein Server einzurichten - der ein statisches Abbild eben
dieser Seiten hat. Und bei diesem Server ist *nichts*, was da nicht
hingehört: Wordpress, mysql, hastenichgesehen: Alles weg (daemon).
(Notfalls ist das physikalisch der gleiche Server.)

Sofern man geprüft hat, dass die einzelnen URL dort auch stimmen,
geht der online.

(Man könnte an dieser Stelle des längeren und breiteren über Last-
 verteilung und round-robin und dies und das diskutieren: Nach meinen
 Erfahrungen ist in einer wirklichen Krise dafür aber keine Zeit.)

Parameter allgemein:
* der Apache muss Seiten ausliefern - nicht mehr.
* DNS-Auflösung für Protokoll - weg damit!
* Protokoll selbst -> ab nach /dev/null !
  Hierzu: Willst Du Protokoll schreiben - oder Seiten ausliefern?
  Protokoll ist eine ganz böse Falle: In einer derartigen Situation ist
  der Flaschenhals ganz schnell der Bus zur Platte mit access.log!
  Hier vergegenwärtigen: Apache klemmt, wenn er das Log nicht schreiben
  kann - ganz böse Falle.
* Waches Auge auf die eigene Netzwerkkarte: Auch dort kann es sehr
  schnell zu Problemen bei der realen Bandbreite kommen.

> Die Frage ist nun, an welchen Werten kann ich schrauben, ohne dass der
> Server gleich wieder zusammen bricht.

Ich beziehe mich auf den statischen Server - der sich faktisch nur
noch um Apache kümmert:

> Aktuell sind eingestellt:
> Timeout 100

Würde ich auf 20 setzen: Du blockierst sonst unnötig Slots.
(Zu diskutieren wäre: Ob man das konsequent auf 5 setzt: Man verliert
 ja so oder so Leser - die Frage ist doch nur: Wie viele verliert man?)

> KeepAlive On

Normalerweise ok.
Falls Du aber nur sehr wenige (nur eine) Seite(n) hast: Ausstellen.
(Denn sonst blockiert keepalive den Slot für den nächsten Nutzer.)

> MaxKeepAliveRequests 500
> KeepAliveTimeout 5

Ok.

> <IfModule mpm_prefork_module>
>         StartServers            5
>         MinSpareServers         5

Ok.

>         MaxSpareServers         8

Deutlich höher.
Du hast 1G RAM!
(Ich bitte um Diskussion: Falls ich in der Situation wäre und
 dann keine Zeit hätte, lange Doku zu wälzen - würde ich so in die
 Ecke 50..80 tendieren.)

>         MaxClients              16

Bei diesem Parameter bin ich unsicher: Reines Bauchgefühl -ohne die Doku
konsultiert zu haben- auch deutlich höher.

Meinen Beitrag stelle ich gleichzeitig der Kritik der anwesenden Damen
und Herren: Mich deucht, dass hier recht viele Profis sind, die sich gar
nicht äußerten.

Hoffe geholfen zu haben,
Martin

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------