Braucht eine Drupal-Instanz pro Besucher "immer" 15 MB RAM?
am 23.04.2010 - 00:25 Uhr in
Hi,
ein Bekannter von mir meinte, dass eine Drupal-Instanz pro Besucher immer 15 MB Arbeitsspeicher benötigt. Macht das Sinn? Denn immerhin variieren die Module zwischen den Drupalinstallationen und es sind ja auch immer wieder Besucher mit erhöhten Rechten drauf (z.B. Admin). Wie kann ich konkret feststellen, wieviele Besucher auf meinem Server Platz finden, ohne das der Seitenaufbau langsam wird?
HAND
- Anmelden oder Registrieren um Kommentare zu schreiben

Bestenfalls kann man sagen,
am 23.04.2010 - 10:23 Uhr
Bestenfalls kann man sagen, dass eine Instanz in einer üblichen Drupal-Installation wenigstens 15 MB benötigt und diese Angabe bezieht sich rein auf das PHP Memory. Dazu kommen natürlich noch statich und dynamisch belegte Hauptspeicherbereiche für den Webserver-Prozess, etc. In der Praxis kann der PHP Memory Wert ganz unterschiedlich je nach Installation und darin enthaltener Seite ausschauen. Im Allgemeinen ist die Modulübersichtsseite ein guter Gratmesser für das Maximum.
Du kannst nicht berechnen wann dein Server "langsam" wird. Zunächst einmal musst du klar in Zahlen definieren was "langsam" für dich konkret bedeutet. Geschwindigkeit hat zunächst auch nichts mit Hauptspeicher zu tun, so lange davon genug da ist. Du kannst, wenn du einen eigenen Server betreibst, den Speicherverbrauch der Prozesse messen, anhand des PHP Memory Limits oder der Messung der Modulübersicht (die Angabe wieviel Speicher ein Seitenaufbau benötigt kann dir das Devel-Modul ausgeben) kannst du ein Maximum berechnen und damit über die diversen anderen Kennzahlen des Servers (Wieviel RAM braucht das Grundsystem? Wieviel RAM schluckt nach aktueller Konfiguration MySQL im Worst-Case? ..) ausrechnen wieviele Webserverprozesse samt PHP mit maximalem Speicherverbrauch gleichzeitig im RAM Platz haben (ggf. muss man hier sicherheitshalber noch Zuschläge für den Dateisystem-Cache, etc. einberechnen). Dementsprechend konfiguriert man auch den Webserver nur maximal soviele Prozesse gleichzeitig zu erlauben.
Hat man seine Hausaufgaben gemacht verhindert man so, dass der Server bei zuviel Verkehr anfängt zu Speicher auf die festplatte auszulagern. Wenn er damit erstmal beginnt wird er schnell so langsam, dass der Swap volläuft, das System nach außen nicht mehr reagiert und zum erliegen kommt.
Auch wenn man die Situation somit vermeiden kann, ist der neue Worst-Case derjenige, dass bei max. Auslastung des Servers neue Anfragen zus. Besucher abgelehnt werden. Dann ist es höchste Eisenbahn kurz- und mittelfristige Skalierungsmöglichkeiten zu recherchieren. Bei einem verantwortungsvoll gewarteten System hat man aber ein Monitoring laufen, dass man sich periodisch anschaut und einem über die Zeit zeigt, wie sich der Ressourcenverbrauch auf dem System verhält. So kann man, wenn keine zu plötzlichen und drastischen Änderungen entstehen (etwa durch Erwähnung der Site auf Heise.de, u.ä.) frühzeitig Maßnahmen planen und umsetzen.
Danke für die ausführliche
am 23.04.2010 - 10:32 Uhr
Danke für die ausführliche Antwort. Also der Apache nimmt von sich aus bei der Standardkonfiguration pro Website-Besucher 15 MB Ram ein. Ich schätze die Apache-Doku (= http://httpd.apache.org/docs/2.2/) ist eine gute Ausgangsbasis zum Einlesen. Sehe ich das richtig?
Nein, tut er nicht. Man kann
am 23.04.2010 - 10:39 Uhr
Nein, tut er nicht. Man kann grob über den Daumen davon ausgehen, dass ein Seitenaufruf in Drupal in üblichen Sites ab 15 MB PHP Speicher benötigt. Der gesamte RAM-Bedarf des Apache Prozesses samt PHP Interpreter liegt natürlich darüber und ist von System zu System unterschiedlich, u.a. abhängig von Architektur (32 Bit, 64 Bit), Kompilieroptionen als der Apache und als PHP "gebacken" wurden, Anzahl und Konfiguration der mitgestarteten Module, usw. usf.
Sowas kann man nur im jeweiligen System messen und nicht irgendwo nachlesen oder berechnen.
Hast du einen Hinweis darauf,
am 23.04.2010 - 10:46 Uhr
Hast du einen Hinweis darauf, wie ich über das Debian-Terminal feststellen kann, wieviel RAM die jeweiligen Besucher-Sitzungen benötigen?
http://onlamp.com/pub/a/onlam
am 23.04.2010 - 11:25 Uhr
http://onlamp.com/pub/a/onlamp/2004/02/05/lamp_tuning.html
http://linuxadministration.wordpress.com/2007/08/18/solving-apache-memor...
http://rimuhosting.com/howto/memory.jsp
http://prematureoptimization.org/blog/archives/28
http://2bits.com/articles/measuring-memory-consumption-by-drupal-bootstr...
http://2bits.com/articles/apache-fcgid-acceptable-performance-and-better...