Andreas Korthaus: DoS

Beitrag lesen

Hallo!

Die Logdateien sind leer, der Browser sendet nur ein Timeout, ps aux liefert seitenweise Kindprozesse des apachen...

Welche Logdateien? access_log? Wieviel hat der Server denn zu tun? Was sagt top und evtl. auch mod_status?

Die Errorlogdatei ist dagegen voll von:

[info] server seems busy, (you may need to increase StartServers, ThreadsPerChild or Min/MaxSpareThreads), spawning 8 children, there are around 1 idle threads, and 20 total children

Das heißt Du hast sehr viele dieser Einträge? http://httpd.apache.org/docs-2.0/misc/perf-tuning.html#process

Soll man auf Keep-Alive verzichten und Timeout herabsetzen?

Bei PHP würde ich Keep-Alive abschalten, ja.

Gibt es eine Faustformel nach Arbeitspeicher und CPUs wieviele Prozesse (in dem Fall Threads) der Apache maximal starten darf?

Das kommt drauf an wie groß die Prozesse sind (ist wegen shared memory aber nicht ganz einfach zu berechnen, siehe ggfs.: http://kris.koehntopp.de/artikel/webtune/)

Die derzeitige Testkonfiguration:

Apache 2.0.53 mit MPM worker auf Linux



> ThreadLimit         610
> ServerLimit         21
> StartServers        2
> MaxClients          600
> MinSpareThreads     5
> MaxSpareThreads     50
> ThreadsPerChild     30
> MaxRequestsPerChild 100000
> 

Das sind soweit ich das sehe nicht die Standardwerte. Wie bist Du auf die gekommen?

Zu dem was Sven zum Worker-MPM zusammen mit PHP gesagt hat siehe: http://de3.php.net/manual/de/faq.installation.php#faq.installation.apache2

Vielleicht ist Deine Hardware einfach überfordert? Vielleicht hilft Dir in dem Fall auch der Feature Artikel von CK: http://aktuell.de.selfhtml.org/artikel/server/apachetuning/index.html

Grüße Andreas

--
SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/