eAccelerator Config Problem

  • Hallo zusammen,


    ich habe da ein kleines Problemchen mit dem eAccelerator. Leider kann ich den Wert für "eaccelerator.shm_size" nicht höher als 32M setzen, da mir sonst der Apache abstürzt und die Seite nicht geladen wird. Etwas googlen brauchte mir dann den Hinweis, dass offensichtlich der Shared Memory Wert des Kernel auf diesen Wert limitiert ist (gibt zumindest /proc/sys/kernel/shmmax aus) und es deswegen zu dem Fehlverhalten kommt.
    Jetzt würde ich mal interessieren, ob ihr höhere Werte einstellen könnt und was "cat /proc/sys/kernel/shmmax" bei euch ausgibt. Kann man den Wert seitens netcup erhöhen lassen oder muss man auf eA verzichten, weil 32 MB schon recht mickrig sind, wenn man theoretisch 1 GB RAM zur Verfügung hat. Da sollten schon mindestens 128M für eA einstellbar sein.


    Ein 2. Problem gibt es noch in Verbindung mit PMA. Sobald eA aktiv ist, liefert PMA nur eine blank Page. Jemand eine Idee an was das liegen könnte? Ich habe eA für den PMA via htaccess deaktiviert, aber das ist bestenfalls ein Workaround und keine zufriedenstellende Lösung.


    Danke und Gruß,
    Andreas

  • Bei meinem vServer Gold, PMA läuft hier problemlos:


    Falls es zu weißen Seiten kommt, leere zur Sicherheit nochmals den eaccelerator.cache_dir und starte den Apache komplett neu. Bei tief greifenden Konfigurationsänderungen (wie z.B. short_tags) wird die gecachte Version des Script übrigens nicht gelöscht und fehlerhaft ausgeführt. Ein Problem bei eAccelerator ist auch, dass manche Fehlermeldungen (vorallem Parse Errors in dynamischem Scriptcode wie z.B. in eval()) nur einmal ausgegeben werden und danach nicht mehr sichtbar sind. Aktiviere zum Test einmal ein globales PHP-Error Log um den Fehler zu finden.



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Hallo Christian,


    danke für deine Antwort. Die Tipps helfen leider nicht, sobald ich eaccelerator.shm_size höher setze als 32, wird eA nicht mehr initialisiert und es kann keine Verbindung zum Server hergestellt werden. Das System ist hier ebenfalls ein vServer Gold, Debian Lenny, shmmax hat einen identischen Wert. Welche eA Version hast Du denn laufen? Probiert habe ich es mit 0.9.6 (die aktuelle Stable) und v1.0-dev, beide Versionen zeigen das gleiche Verhalten. PHP Version ist 5.2.12 von dotdeb.
    Daran dürfte es aber vermutlich nicht liegen, da ich diese Konfiguration (Lenny, PHP 5.2.12 dotdeb, eA v1.0-dev) auch hier lokal laufen habe und das gleiche Verhalten gezeigt wurde. Nach erhöhen des shmmax konnte ich dann auch einen höheren Wert in der eA ini setzen.

  • Tja, an der EA Version könnte es liegen, denn ich setze die 0.9.5.3 ein, habe erst jetzt bemerkt, dass es eine neuere Version gibt. Das Upgrade auf die aktuelle EA Version spare ich mir jetzt nach deinem Bericht vorerst aber einmal. PHP verwende ich die aktuelle Stable-Version 5.2.6-1+lenny4. Versuchs zum Test doch einmal mit dem eAccelerator 0.9.5.3 - dann können wir wenigstens einen Fehler in der neuen Version ausschließen ;)


    Weil scheinbar haben sie in der aktuellen Version einiges entfernt bzw. umgeschrieben: http://eaccelerator.net/wiki/Release-0.9.6



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Hier noch kurz der Apache Logeintrag:

    Code
    eAccelerator: Could not allocate 50331648 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
    [Fri Feb 05 11:45:08 2010] [notice] Apache/2.2.9 (Debian) configured -- resuming normal operations
  • In der FAQ ist es übrigens auch erwähnt: http://eaccelerator.net/wiki/Faq
    Wie gesagt, ich habe von dem Problem in der alten Version noch nie etwas gesehen oder gehört. Vielleicht wirklich in der aktuellen Version kaputt optimiert? :o



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Zitat von killerbees19;13403

    Vielleicht wirklich in der aktuellen Version kaputt optimiert? :o


    Sieht fast so aus. Ich habe jetzt die 0.9.5.3 installiert und da kann ich den Wert ohne Probleme ändern. :o
    PMA will zwar immer noch nicht, wenn eA aktiviert ist, aber dann schalte ich das eben per .htaccess für den PMA aus.


    Jedenfalls vielen Dank für den Hinweis mit der alten Version! Wer kann auch ahnen, dass man im Branch ein paar Jahre und Versionen zurück gehen muss, damit es funktioniert. Ich hatte ja schon verschiedene Versionen getestet, aber nicht so weit zurück. :rolleyes:

  • Das Problem sollte man aber einmal im Bugtracker vom eAccelerator melden, weil als Feature sehe ich das nicht an :o


    Übrigens: Welche PMA Version verwendest du, wo es nicht funktioniert?



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Zitat von killerbees19;13407

    Übrigens: Welche PMA Version verwendest du, wo es nicht funktioniert?


    phpMyAdmin - 2.11.8.1deb5+lenny3


    War bisher zu faul auf v3 upzudaten. :D
    Übrigens läuft die gleiche Version auch lokal und da gibt es keine Probleme. Ich vermute mal schwer, dass es etwas mit den PMA-Sessions zu tun hat - zumindest habe ich Hinweise darauf bei Google gefunden.

  • Zitat von koweto;13409

    phpMyAdmin - 2.11.8.1deb5+lenny3


    Mit der 2.11.9.6 funktioniert es auf jeden Fall bei mir, nur so als Randbemerkung :D



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Die Fehlermeldung ist doch eigentlich eindeutig oder nicht? ;)


    Code
    eAccelerator: Could not allocate [B]50331648 bytes[/B], the maximum size the kernel allows is [B]33554432 bytes[/B]. Lower the amount of memory request or increase the limit in [B]/proc/sys/kernel/shmmax[/B].


    Klingt doch eigentlich logisch.. der kann sich nicht mehr rausnehmen, als ihm vom Kernel zur Verfügung steht.


    Du willst 48 MB nutzen, hast aber nur 32 MB zur Verfügung. Um mehr nutzen zu können, musst du den Kernel-Parameter kernel.shmmax erhöhen. Meines Wissens ist es aber auf einem vServer nicht möglich und muss, in dem Fall, durch netcup angepasst werden.



    Gruß,
    Jan

  • Zitat von IanFrey;18500

    Klingt doch eigentlich logisch.. der kann sich nicht mehr rausnehmen, als ihm vom Kernel zur Verfügung steht.


    Klar, aber bei der alten eA Version gab es das Problem nicht, da es dort anders gelöst wurde. Von daher also trotzdem ärgerlich.


    [netcup] Felix P.: Werde ich mir merken, wenn ich mich endlich entschließe meine eA Version upzudaten :D



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Mal ausgraben den alten Thread hier. :rolleyes:



    Ich habe gestern auf PHP 5.3.3 (dotdeb) aktualisiert und seither verweigert sich eA 0.9.5.3 komplett. eA Neuinstallation geht auch nicht, da es beim Install-Prozess nur so Fehlermeldungen hagelt. Die aktuelle Version 0.9.6.1 läuft ohne Probleme, allerdings mit dem ärgerlichen 32M Limit. Deswegen habe ich eben mal den Support angemailt und um Erhöhung des kernel.shmmax gebeten.
    Wollte nur mal darauf hinweisen, falls jemand ein Upgrade in Erwägung zieht. Besser bereits vorher bei netcup wegen der Limit Erhöhung melden, ehe man auf das gleiche Problem trifft wie ich und sich die Anzahl der grauen Haare vervielfacht. ;)