Apache möglichst Resourcenschonend konfigurieren

Alles, was den Apache betrifft, kann hier besprochen werden.

Apache möglichst Resourcenschonend konfigurieren

Postby laccolithgrunt » 14. February 2009 11:45

Hallo!

Ich habe eine VM mit einem Ubuntu und 512 MB-Ram. Darauf läuft eine RubyOnRails- und PHP-Applikation (beide nutzen eine MySQL-Datenbank, die Rails-App ist wahrscheinlich der Speicherfresser ;) ). Ich habe seit längerem das Problem, dass mein Fehlerlog öfter folgende Fehler ausspuckt: "Cannot allocate memory: fork: Unable to fork new process". Und zwar das schon, wenn ich nach einem Neustart beide Webseiten genau einmal aufgerufen habe. Bei Aufruf von top o.ä. gibt es vom Speicher her keine großen Ausreißer, dennoch tippe ich auf den Apache, weil ansonsten nichts großes darauf läuft. An der Apache-Konfiguration habe ich eigentlich bisher nur am folgenden rumgeschraubt:
Code: Select all
<IfModule mpm_prefork_module>
     StartServers       1
     MinSpareServers    1
     MaxSpareServers    2
     MaxClients        3
    MaxRequestsPerChild   0
</IfModule>

Leider hat das mein Speicherproblem nicht beseitigt (ich bekomme momentan zusätzlich noch den Fehler, dass meine MaxClients zu niedrig sind ;) ).

Habt ihr Tips für mich, wie ich ohne Aufrüsten der VM (wie mein Anbieter vorgeschlagen hat) meine VM dazu bringen kann, die beiden Webseiten zu hosten? Wieviel würde es bringen, den Apache selbst zu kompilieren (und wenn, mit besonderen Konfig-Parametern )?
laccolithgrunt
 
Posts: 8
Joined: 06. April 2007 09:37

Re: Apache möglichst Resourcenschonend konfigurieren

Postby Nobbie » 14. February 2009 15:03

>Habt ihr Tips für mich, wie ich ohne Aufrüsten der VM (wie mein Anbieter vorgeschlagen hat) meine VM dazu bringen kann, die beiden Webseiten zu hosten?

Gar nicht. Bei RAM-Preisen von 12,- Euro/GB ist das auch die falscheste aller falschen Versuche. Kauf einfach ein paar GB RAM und weise der VM mehr Speicher zu.
Nobbie
 
Posts: 8766
Joined: 09. March 2008 13:04

Re: Apache möglichst Resourcenschonend konfigurieren

Postby laccolithgrunt » 14. February 2009 15:45

Wie die aktuellen RAM-Preise auf dem Markt sind, ist meinem VServer-Anbieter herzlich egal ;). Wenn ich von 512 auf 768 Mb RAM wechsel, heißt das auch statt 8 dann 14 Eur/Monat...
laccolithgrunt
 
Posts: 8
Joined: 06. April 2007 09:37

Re: Apache möglichst Resourcenschonend konfigurieren

Postby Wiedmann » 14. February 2009 15:53

Bei Aufruf von top o.ä. gibt es vom Speicher her keine großen Ausreißer, dennoch tippe ich auf den Apache, weil ansonsten nichts großes darauf läuft.

Wieso tippst du auf den Apachen, wenn der laut Top gar nicht viel Speicher braucht?

Nun ja, jedenfalls nicht der Apache an sich. mod_python (RubyOnRails) ist allerdings bekannt dafür, nicht optimal mit dem Speicher umzugehen. Und da du das ja benutzt, bleibt dem Apachen nichts anderes übrig als das zu laden. Und dann schlägt wohl ein Limit zu, was dein Hoster den Processen verordnet hat (unabhängig davon, wieviel Hauptspeicher insg. noch frei wäre).
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Apache möglichst Resourcenschonend konfigurieren

Postby Nobbie » 14. February 2009 20:41

Na sowas - da ist doch glatt die VM (= virtual Machine, beispielsweise VirtualBox oder auch VMWare) zu einem VirtualServer mutiert - das klingt zwar ähnlich. hat aber wenig gemeinsam. Man sollte sich doch wirklich von Anfang an die Mühe machen, die Probleme richtig(!) zu beschreiben und nicht irgendwo so oder so.

Dennoch hilft auch hier wahrscheinlich nur mehr RAM (und/oder auch mehr Sockets usw.) - der VirtualServer ist zu klein ausgelegt für diese Anforderung. Ohnehin ist es auch meine persönliche Erfahrung, dass diese VirtualServer relativ schnell an ihre Grenzen stoßen. Wer eine große Community bedienen will, sollte deswegen entweder gleich eine opulente Konfiguration wählen oder gleich einen Rootserver. Da gibt es ja auch durchaus ziemliche Preisunterschiede von Anbieter zu Anbieter, vielleicht läßt sich ja da noch etwas einsparen. Und wenn nicht, dann mußt Du eben um Unterstützung bitten, das bedeutet für den Einzelnen nur einen kleinen Beitrag, aber für Dich läppert sich das schnell zu einem adäquaten Sümmchen zusammen.
Nobbie
 
Posts: 8766
Joined: 09. March 2008 13:04

Re: Apache möglichst Resourcenschonend konfigurieren

Postby laccolithgrunt » 15. February 2009 11:12

mod_python (RubyOnRails) ist allerdings bekannt dafür, nicht optimal mit dem Speicher umzugehen. Und da du das ja benutzt, bleibt dem Apachen nichts anderes übrig als das zu laden. Und dann schlägt wohl ein Limit zu, was dein Hoster den Processen verordnet hat (unabhängig davon, wieviel Hauptspeicher insg. noch frei wäre).

Ich verstehe nicht, warum ich mod_python für RubyOnRails brauche... Ich nutze mod_rails/ Passenger. Dass das ein Speicherfresser (mit der Rails-Applikation zusammen) ist klar, gibt es da irgendwie Optimierungspotential? Meinst du mit deiner Aussage, dass Hoster pro Prozess ein Limit setzen und dass das Problem sein könnte?

Na sowas - da ist doch glatt die VM (= virtual Machine, beispielsweise VirtualBox oder auch VMWare) zu einem VirtualServer mutiert

Ich geb zu, dass ich mich da ein wenig unklar ausgedrückt habe, sry dafür...

Dennoch hilft auch hier wahrscheinlich nur mehr RAM (und/oder auch mehr Sockets usw.) - der VirtualServer ist zu klein ausgelegt für diese Anforderung

Ich glaub, auch hier hab ich vielleicht ein wenig Hintergrundinfos geliefert: Wie gesagt handelt sich um 2 Webseiten, die jeden Tag ungefähr 10-20 Zugriffe pro Seite haben. Ich hatte gehofft, dafür mit 512Mb Ram auszukommen. Und selbst wenn ich aufrüsten würde, woher weiß ich, dass 768Mb dann überhaupt ausreichend sind (sehe ja nicht wirklich, wieviel Speicher verbraucht wird)?

Vielen Dank schon mal für eure Antworten!
laccolithgrunt
 
Posts: 8
Joined: 06. April 2007 09:37

Re: Apache möglichst Resourcenschonend konfigurieren

Postby Xardas der Dunkle » 15. February 2009 14:02

(sehe ja nicht wirklich, wieviel Speicher verbraucht wird)?

Installier munin.
Code: Select all
sudo aptitude install munin


Auch wenn, das mit dem Speicher bei Linux so ne Sache ist^^. Linux verwendet nämlich erstmal den zu verfügung stehenden RAM fürs Betriebssystem und gibt ggf. für andere Prozesse diesen frei.
Das heißt es wird eigentlich immer volle Nutzung des Arbeitsspeicher angezeigt!

Und btw., bei meinem Debian VServer trat das Problem mit dem cannot allocate memory, auch bereits auf .. und zwar als mir erstmal phpMyAdmin abgeschmiert ist o_Ô (hat sich tot geladen, wieso auch immer!) und dann Testweise 20 Mails an den Server gesendet hatte.
Danach hat sich der Indianer komplett verabschiedet!
Und auf die batch kam ich kurzzeitig auch nicht drauf ...
Und um das ganze abzurunden, ich habe 768 MB RAM | 1024 Flexi-RAM ;)
Last edited by Xardas der Dunkle on 15. February 2009 14:28, edited 1 time in total.
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Re: Apache möglichst Resourcenschonend konfigurieren

Postby Wiedmann » 15. February 2009 14:21

Ich verstehe nicht, warum ich mod_python für RubyOnRails brauche...

Womit du natürlich recht hast.

Ich nutze mod_rails/ Passenger. Dass das ein Speicherfresser (mit der Rails-Applikation zusammen) ist klar,

Eben dieses Modul mitsamt Applikation ist dein Problem und verbraucht den Speicher. Am Apache selbst kannst du da nicht viel machen. Die Module die der sonst noch lädt, dürften ja nur die Standards sein und nicht viel ausmachen. Wie man jetzt mod_rails oder der Applikation beibringt weniger Speicher zu benötigen, musst du natürlich an anderer Stelle fragen.

Meinst du mit deiner Aussage, dass Hoster pro Prozess ein Limit setzen und dass das Problem sein könnte?

Yup. Zumindest hat er Vorgaben gemacht, die du evtl. bei einem VServer auch selbst in Grenzen beeinflussen kannst. Schau dir einfach mal "ulimit" an. Mehr Speicher als da zugelassen ist, kann ein einzelner Prozess nicht benutzen. Egal wieviel "Hauptspeicher" du hast. Oder frag deinen Hoster einfach nach den Prozesslimits (in einer VM kann man das Limit ja auch außerhalb von ulimit definieren).
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Apache möglichst Resourcenschonend konfigurieren

Postby laccolithgrunt » 15. February 2009 16:25

Eben dieses Modul mitsamt Applikation ist dein Problem und verbraucht den Speicher. Am Apache selbst kannst du da nicht viel machen. Die Module die der sonst noch lädt, dürften ja nur die Standards sein und nicht viel ausmachen. Wie man jetzt mod_rails oder der Applikation beibringt weniger Speicher zu benötigen, musst du natürlich an anderer Stelle fragen.

Danke für diesen Hinweis. Ich habe mich mal umgehört und folgende zwei Schritte unternommen (falls andere auch das Problem haben):

* http://www.rubyenterpriseedition.com/ installiert
* Gemäß http://www.modrails.com/documentation/Users%20guide.html#_resource_control_and_optimization_options PassengerMaxPoolSize auf 2 gesetzt

In dieser Konfiguration sind momentan meine Webseiten problemlos und schnell erreichbar, ich konnte in meiner Apache-Konfiguration die MaxClients wieder auf 10 stellen... Bin mal gespannt, ob ich somit das Speicherproblem beheben konnte.

Vielen Dank an dieser Stelle an euch!
laccolithgrunt
 
Posts: 8
Joined: 06. April 2007 09:37


Return to Apache

Who is online

Users browsing this forum: No registered users and 2 guests