Meine Site hat tagsüber 2 Stunden lang viel Verkehr (2000 Zugriffe pro Minute). Den Rest des Tages ist der Verkehr geringer (500 Zugriffe pro Minute). Ich habe mit den Werten für MaxClients und MaxSpareServers experimentiert, aber es kommt während der Spitzenzeiten immer noch zu Ausfallzeiten.

Wie kann ich basierend auf der Menge an RAM, die mir zur Verfügung steht, die besten Werte für meine Konfiguration berechnen?

Jeder Prozess benötigt etwa 36–40 MB Speicher

             total       used       free     shared    buffers     cached
Mem:          3096        793       2302          0          0          0
-/+ buffers/cache:        793       2302
Swap:  

      0          0          0

Werte, die ich jetzt verwende

<IfModule prefork.c>
StartServers 10
MinSpareServers 22
MaxSpareServers 60
ServerLimit 90
MaxClients 90
MaxRequestsPerChild  400

UPDATE: Ich habe dies bei meinem Hosting-Anbieter gefunden.

http://kb.mediatemple.net/questions/246/(dv)+HOWTO:+Grundlegende+Leistungsoptimierung+für+Apache+(httpd)

Ich habe das Extreme-Paket und habe 190 in MaxClients statt 200 verwendet. Ich habe es eine halbe Nacht lang probiert und einige Malloc-Fehlerbefehlszeilenmeldungen erhalten, aber als ich den Free-Befehl verwendet habe, standen in der Spalte „Frei“ etwa 800 M.

Antwort1

Wenn Ihr Server unter Spitzenlasten leidet, kann es auch daran liegen, dass Apache die Erstellung von Prozessen und Threads sehr langsam handhabt (im mpm_prefork-Modus ist es 1 neuer Unterprozess pro Sekunde). Wenn Sie Ihren Bedarf an „hohem Datenverkehr“ kennen (sagen wir, es sind 200 Prozesse), sagen Sie Apache, er sollstetsDiese 200 Prozesse sind bereit, auch wenn sie 90 % der Zeit nichts tun. Sie sind bereit, wenn die Leute hereinkommen.

Schauen Sie sich diese praktische Präsentation an (alt, aber cool) http://www.techpresentations.org/Hacking_Apache_HTTP_Server_at_Yahoo!

Keine Notwendigkeit für StartServers, MaxSpareServers, MinSpareServers – nur MaxClients (konstante Poolgröße)

Antwort2

Die Antwort hängt stark von der Art des Inhalts ab, den Sie bereitstellen. Handelt es sich um dynamischen oder statischen Inhalt? Handelt es sich um eine breite Palette von Inhalten oder um ein einzelnes Dokument?

Sie könnenzwischengespeichertum die Dokumente im Speicher zu speichern, was eine erhebliche Skalierung ermöglicht (Beseitigung eines Festplattenengpasses), aber es hängt alles davon ab, wie viel RAM Sie haben und ob sich der Inhalt häufig ändert.

Antwort3

Sie müssen Tests durchführen, die von Ihrer Serverhardware (vor allem vom Arbeitsspeicher) und der Effizienz der von Ihnen betriebenen Site abhängen. Was passiert, wenn es zu Ausfallzeiten kommt? Erreichen Sie die von Ihnen festgelegten Grenzwerte? Geht Ihnen der Arbeitsspeicher aus?

Antwort4

Wenn Sie sich in einer Situation mit stark eingeschränktem Arbeitsspeicher (VPS) befinden, müssen Sie möglicherweise die standardmäßige maximale Anzahl von Clients verringern, um einen Swap-Dead zu verhindern.

Wenn nicht,fass es nicht an.

Das Optimieren der Apache-Child-Elemente ist eine dieser Sachen, wie das individuelle Kompilieren eines Kernels, bei denen die Leute überwiegend mehr Schaden als Nutzen anrichten, selbst wenn der Schaden nur darin besteht, einen Nachmittag ohne Nutzen zu verschwenden. Es stellt sich heraus, dass die Leute vom httpd-Projekt bei Apache ziemlich gut in dem sind, was sie tun! Ich meine, wer hätte das gedacht?

verwandte Informationen