Guten Morgen und ein gesundes neues Jahr allen Linux-Gurus und -Freunden.
Ich hocke nun schon seit Monaten an folgendem Problem: Apache 2.0.53 mit PHP 5.0.3 auf SuSE 9.3 (virtueller Server) zur Auslieferung von Joomla mit integriertem FlashChat lässt immer wieder Monit und/oder cron und/oder ssh und/oder postfix etc... abstürzen. Bei einem Stresstest beispielsweise mit: ab2 -n 10 -c 200 http://... (von einem anderen Server im selben Netz gestartet) nennt mir "top" zwar eine Speicher- auslastung von höchstens 75%, ein "ps -ylC httpd2-prefork --sort:rss" aber meint einmal "Too many open files in system" ein anders Mal "Cannot allocate memory". Laut "top" stehen insgesamt 1.310.720 kB zur Verfügung, während des Stress- Tests werden zeigt "top" beispielsweise "load average: 16.62, 6.02, 5.08" und "801180k used, 509540k free" - wo soll ich weitersuchen?
Der Indianer ist so eingestellt, dass er nach einer gewissen Zeit wieder auf Normalniveau kommt: <IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 10 ServerLimit 50 MaxClients 50 MaxRequestsPerChild 10 </IfModule> aber zwischenzeitlich sind halt die o.g. Dienste weg vom Fenster (mal der eine, mal ein anderer, aber immer ist auch der Monit betroffen, der ja eigentlich das Ganze abfangen soll) :-((
Ein Systemwechsel ist leider nicht möglich, da der Hauptmieter dieses virtuellen Servers sich nicht mit der ssh-Konsole anfreunden will und auf die Verwaltung per Confixx besteht.
Gruß René Thiel (Rennkuckuck) mailto:reti@rennkuckuck.de -- http://rennkuckuck.de - Die Rumänien-Seiten http://rtol.de - Dynamische Webseiten mit PHP, mySQL und CSS
Am 03.01.08 schrieb Rene Thiel reti@rennkuckuck.de:
Guten Morgen und ein gesundes neues Jahr allen Linux-Gurus und -Freunden.
Ich hocke nun schon seit Monaten an folgendem Problem: Apache 2.0.53 mit PHP 5.0.3 auf SuSE 9.3 (virtueller Server) zur Auslieferung von Joomla mit integriertem FlashChat lässt immer wieder Monit und/oder cron und/oder ssh und/oder postfix etc... abstürzen. Bei einem Stresstest beispielsweise mit: ab2 -n 10 -c 200 http://... (von einem anderen Server im selben Netz gestartet) nennt mir "top" zwar eine Speicher- auslastung von höchstens 75%, ein "ps -ylC httpd2-prefork --sort:rss" aber meint einmal "Too many open files in system" ein anders Mal "Cannot allocate memory". Laut "top" stehen insgesamt 1.310.720 kB zur Verfügung, während des Stress- Tests werden zeigt "top" beispielsweise "load average: 16.62, 6.02, 5.08" und "801180k used, 509540k free" - wo soll ich weitersuchen?
Hast Du in Deinem syslog mal nach Auffälligkeiten geschaut? Für mich klingt das auf den ersten Blick so, als ob kein freier Speicher und kein swap vorhanden ist, um einen Prozess auszuführen, was den Kernel dann veranlasst einen Prozess abzuschiessen.
HTH Robert
Robert Müller schrieb:
Für mich klingt das auf den ersten Blick so, als ob kein freier Speicher und kein swap vorhanden ist, um einen Prozess auszuführen, was den Kernel dann veranlasst einen Prozess abzuschiessen.
Richtig, laut "top" ist kein swap vorhanden, nur das "801180k used, 509540k free" irritierte mich. Jetzt habe ich aber mal auf der Provider-HP etwas genauer gelesen: Arbeitsspeicher garantiert: 640 MB FlexRAM* garantiert: 1.280 MB * FlexRAM bezeichnet den bei Verfügbarkeit dynamisch maximal zugewiesenen Speicher.
Damit ist mir jetzt endlich alles klar: Providerwechsel.
Gruß René Thiel (Rennkuckuck) mailto:reti@rennkuckuck.de -- http://rennkuckuck.de - Die Rumänien-Seiten http://rtol.de - Dynamische Webseiten mit PHP, mySQL und CSS
Hi!
On Fri, Jan 04, 2008 at 03:46:32AM +0100, Rene Thiel wrote: [..]
Richtig, laut "top" ist kein swap vorhanden, nur das "801180k used, 509540k free" irritierte mich. Jetzt habe ich aber mal auf der Provider-HP etwas genauer gelesen: Arbeitsspeicher garantiert: 640 MB FlexRAM* garantiert: 1.280 MB
- FlexRAM bezeichnet den bei Verfügbarkeit dynamisch maximal zugewiesenen Speicher.
Damit ist mir jetzt endlich alles klar: Providerwechsel.
Du könntest auch versuchen, den Apache so zu konfigurieren dass er eben nicht mehr RAM verbraucht als du hast, also bspw. durch Senkung der Maximal-Zahl der Requesthandler. Oder Swap konfigurieren (falls das in deiner Umgebung geht) um solche Härtefälle zumindest ohne Abstürze abzufangen.
Abgesehen davon ist 'garantiertes FlexRAM' wirklich zu schön ;-) Tip: Bei Hetzner (hetzner.de) gibt's zuverlässige 'echte' Server mit verhältnismäßig viel RAM und ohne allzuviel Marketing-Gewäsch.
Grüße, Jens
Am Freitag 04 Januar 2008 15:21:55 schrieb Jens Kraemer:
Abgesehen davon ist 'garantiertes FlexRAM' wirklich zu schön ;-)
Virtualisierter Speicher ist eigentlich eine nette Sache, da er die Ressourcen wesentlich besser ausnutzt. Es muss halt korrekt implementiert sein, und darf keine einmal erteilten Speicherbereiche wieder entziehen, solange diese noch genutzt werden. Das Gastsystem sollte auch Informationen darüber bekommen, welcher Speicherblock fest und welcher dynamisch ist, damit das auch dem Benutzer vermittelt werden kann. Aber auch die Anwendungen dürfen keine Annahmen darüber machen, dass noch freier Speicher auch später noch frei sein wird. Im Zeitalter von CPU-Hotplugging in Desktoprechnern muss man eben als Entwickler auf alles gefasst sein, was in OSI-Schicht 8 passieren könnte. Nachdem der Virtualisierungshype erstmal etwas abgeklungen ist, könnte das schon in 1-2 Jahren durchweg brauchbar sein. Momentan ist es das nach wie vor nicht, egal mit welcher Lösung.
Tip: Bei Hetzner (hetzner.de) gibt's zuverlässige 'echte' Server mit verhältnismäßig viel RAM und ohne allzuviel Marketing-Gewäsch.
Naja, die Jungs auf dem Chaos-Congress hatten da anderes von Hetzner zu berichten (Vortragsthema «Tracker fahren»). Aber sicherlich ist das auch eine etwas andere Kategorie von Anforderungen. Der Apache mag zwar Monit abschießen, ein Router wird davon aber noch lange nicht abrauchen :-)
Josef
Jens Kraemer schrieb:
Du könntest auch versuchen, den Apache so zu konfigurieren dass er eben nicht mehr RAM verbraucht als du hast, also bspw. durch Senkung der Maximal-Zahl der Requesthandler.
Schon klar, das versuche ich gerade, nur muss ich halt einen Kompromiss finden zwischen Server-Stabilität und Funktionsfähigkeit des Flash-Chat, der die meisten Handler zu verbrauchen scheint (relativ). Und ich muss auch noch rausbekommen, wie viele Besucher die 25 Sites insgesamt zu Spitzenzeiten haben.
Oder Swap konfigurieren (falls das in deiner Umgebung geht) um solche Härtefälle zumindest ohne Abstürze abzufangen.
Ist so etwas überhaupt möglich 1. auf einem virtuellen Server, 2. ohne Neuinstallation, 3. im laufenden Betrieb?
Bei Hetzner (hetzner.de) gibt's zuverlässige 'echte' Server mit verhältnismäßig viel RAM und ohne allzuviel Marketing-Gewäsch.
Schau ich mir mal an - blöd nur, dass der laufende Vertrag noch ca. 14 Monate bezahlt werden muss :-(
Gruß René Thiel (Rennkuckuck) mailto:reti@rennkuckuck.de -- http://rennkuckuck.de - Die Rumänien-Seiten http://rtol.de - Dynamische Webseiten mit PHP, mySQL und CSS
"Rene Thiel" reti@rennkuckuck.de wrote:
(relativ). Und ich muss auch noch rausbekommen, wie viele Besucher die 25 Sites insgesamt zu Spitzenzeiten haben.
Apache-Logs ansehen (bzw. Loganalyser dafür drüberjagen)
Oder Swap konfigurieren (falls das in deiner Umgebung geht) um solche Härtefälle zumindest ohne Abstürze abzufangen.
Ist so etwas überhaupt möglich 1. auf einem virtuellen Server, 2. ohne Neuinstallation, 3. im laufenden Betrieb?
1. an sich spricht nichts dagegen 2. ja (Swap in Loop-Datei) 3. ja
Viele Grüße Fabian
Fabian Hänsel schrieb:
Oder Swap konfigurieren (falls das in deiner Umgebung geht) um solche Härtefälle zumindest ohne Abstürze abzufangen.
Ist so etwas überhaupt möglich 1. auf einem virtuellen Server, 2. ohne Neuinstallation, 3. im laufenden Betrieb?
- an sich spricht nichts dagegen
- ja (Swap in Loop-Datei)
Scheint generell nicht möglich, Zitat: "Bei vServern kannst du kein Swapfile anlegen..." http://serversupportforum.de/forum/virtuelle-server/19387-swapfile-unter-debian-4-0-einrichten.html#2 bzw. http://rtol.de/197
Ich habe es trotzdem probiert:
# dd if=/dev/zero of=/swap/swap.img bs=1M count=512 512+0 records in 512+0 records out # mkswap /swap/swap.img Setting up swapspace version 1, size = 536866 kB # swapon /swap/swap.img swapon: /swap/swap.img: Operation not permitted bzw: # losetup /dev/loop0 /swap/swap.img /dev/loop0: Permission denied # swapon /dev/loop0 swapon: /dev/loop0: Operation not permitted
Mache ich was falsch oder stimmt das o.g. Zitat? Wie erstellt man "Swap in Loop-Datei"?
Gruß René Thiel (Rennkuckuck) mailto:reti@rennkuckuck.de -- http://rennkuckuck.de - Die Rumänien-Seiten http://rtol.de - Dynamische Webseiten mit PHP, mySQL und CSS
Rene Thiel schrieb:
Mache ich was falsch oder stimmt das o.g. Zitat? Wie erstellt man "Swap in Loop-Datei"?
Das ist so korrekt, da du bei einem vServer nur eine quasi virtuelle rootumgebung hast und einen Kernel für alle vServer dessen Schnittstellen transparent abstrahiert sind. Swappen geht AFAIK nur bei Virtuellen Maschinen.
Gruß Norman
"Rene Thiel" reti@rennkuckuck.de wrote:
Ich habe es trotzdem probiert:
Vorgehen ist 100% richtig.
[funktioniert nicht]
Daher das "es spricht _an_sich_ nichts dagegen". Bei UML geht das afaik auch (wobei die festgestellt haben, dass die doppelte Speicherverwaltung ein Performance-Hindernis ist, insofern macht das beim vServer Sinn, es zu deaktivieren oder gar nicht erst zu ermöglichen).
Ich würd an deiner Stelle mal messen, wie viel RAM was braucht und dann MaxClients etc. entsprechend einzurichten.
Zum Speichersparen kannst du z.B. beim Apache nicht benötigte Module rauswerfen oder zu anderen Webservern greifen (kann aber sein, dass das gewisse Anwendungen nicht mitmachen).
Ich weiß ja nicht, was du für eine Last auf der Seite zu bewältigen hast, aber mit 256 MB RAM sollte man eigentlich eine große Menge schaffen (als es mit PHP losging hatten Server nur 128 MB RAM).
Viele Grüße Fabian
Am 04.01.2008 um 03:46 schrieb Rene Thiel:
Richtig, laut "top" ist kein swap vorhanden, nur das "801180k used, 509540k free" irritierte mich. Jetzt habe ich aber mal auf der Provider-HP etwas genauer gelesen: Arbeitsspeicher garantiert: 640 MB FlexRAM* garantiert: 1.280 MB
- FlexRAM bezeichnet den bei Verfügbarkeit dynamisch maximal
zugewiesenen Speicher.
Damit ist mir jetzt endlich alles klar: Providerwechsel.
*Asbestanzug anzieh* Für die Zeit bis dahin könnten Dir DJBs daemontools helfen: http://cr.yp.to/daemontools.html
Damit funktioniert alles ein wenig anders, aber ich hab damals auf so nem virtuellen Server meine Sachen damit ziemlich problemlos am Laufen gehalten.
HTH Sebastian -- Jeder ist notwendigerweise der Held seiner eigenen Lebensgeschichte.
lug-dd@mailman.schlittermann.de