PHP Warning: [eAccelerator] Can not create shared memory area in Unknown on line 0

eAccelertor es una solución de cache para php. Con este software conseguimos guardar una copia de scripts ya interpretados, de esta forma cada vez que el servidor web tenga que lanzar este script ahorrará una parte de tiempo y carga de cpu.

Con este software puede ocurrir que nos econtremos con el siguiente error:

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

    
Por defecto el tamaño de memoria compartida ( shared memory ) en un kernel 2.6 es de 32mb. Este parámetro se encuentra en el fichero /proc/sys/kernel/shmmax de forma que puedes comprobar si está en el límite. Para modificarlo existen dos formas :

* Cambio on-fly, con esto duplicaremos el tamaño actual

echo $(( `cat /proc/sys/kernel/shmmax` * 2 ))  > /proc/sys/kernel/shmmax

* Cambio permamente, modificando /etc/sysctl.conf

kernel.shmmax=VALOR_DESEADO

# aplicar los cambios reiniciando o con este comando:
sysctl -p

En el caso de los vps habŕa que comprobar si la memoria asignada es suficiente ( share memory and socket buffers ). Para ello podemos verificar el fichero /proc/user_beancounter donde muestra todos los parámetros que tenemos y la última columna referente a failcnt, es la cantidad de veces que se han superado estos límites. Seguramente aparecerá la fila  PRIVVMPAGES con el contador distinto de 0. Habrá que ampliar este valor en ese caso.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.