Web-Server

ID #1370 Speichermangel: the maximum size the kernel allows is...

Problem:

Gerade bei einem Update eines halbwegs aktuellen openSUSE-Systems aufgetreten:
Apache startet nicht mehr und im error_log steht:

eAccelerator: Could not allocate 67108864 bytes, the maximum size the kernel
allows is 33554432 bytes. Lower the amount of memory request or increase the
limit in /proc/sys/kernel/shmmax.
PHP Warning:  [eAccelerator] Can not create shared memory area in Unknown on
line 0
PHP Fatal error:  Unable to start eAccelerator module in Unknown on line 0 

Dieser Bug betrifft nicht nur SuSE-Systeme sondern nach meinen Nachforschungen auch weitere Linux-Distributionen.

Lösung:

Wie bereits in der Fehlermeldung angegeben reicht der Wert in /proc/sys/kernel/shmmax nicht um ausreichend SHM-Speicher (ein Shared-Memory-Bereich) zu beanspruchen. Abhilfe schafft hier Spontan folgender Weg:

echo "67108864" > /proc/sys/kernel/shmmax

(Der Wert 67108864 ist der o.g. Fehlermeldung entnommen.)
Nun lässt sich Apache i.d.R. starten.

Nach einem Reboot ist dieser Wert aber wieder verloren. Daher muss er im System fest angemeldet werden:

sysctl -w kernel.shmmax=67108864
#und die neue /etc/sysctl.conf einlesen:
sysctl -p

Letzterer Befehl mit dem Parameter -p dient dazu die Werte aus der sysctl.conf neu einzulesen. Dies macht nur Sinn, wenn man die oben genannte echo-Anweisung übersprungen hat.

 

sozial Bookmarking
Bookmarken bei YIGG Bookmarken bei Mister-Wong Bookmarken bei Icio Bookmarken bei del.icio.us Bookmarken bei Technorati Bookmarken bei Furl Bookmarken bei Spurl Bookmarken bei Yahoo Bookmarken bei Google

huschi, zuletzt 2009-09-30 08:42     Artikel ausdrucken Artikel weiterempfehlen Als PDF-Datei anzeigen

Dieser Inhalt ist unter der Creative-Commons Lizenz lizensiert.

Probleme bitte im Server-Support-Forum diskutieren.

überflüssig 1 2 3 4 5 wertvoll  
Durchschnittliche Bewertung:   0 von 5 (0 Bewertungen)

Artikel kommentieren