memcached y PHP... retraso masivo con las sesiones

memcached y PHP... retraso masivo con las sesiones

Estoy trabajando en un nuevo servidor creado con Unbuntu 10.04, ejecutando php-fastcgi, nginx y memcached.

El script phpinfo() se carga y funciona muy bien, igual que un script de prueba en Memcached. Para cualquier script que utilice sesiones, el tiempo de carga de la página se dispara.

--- memcached.ini ---
extension=memcached.so
memcache.hash_strategy = "consistent"
memcache.max_failover_attempts = 100
memcache.allow_failover = 1
session.save_handler = memcached
session.save_path = "tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

Avíseme si necesita ver otras configuraciones.

Respuesta1

El problema está en la sintaxis session.save_path entre memcache.so y memcached.so:

extension=memcache.so
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"

vs.

extension=memcached.so
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"

Tenga en cuenta el protocolo en el de Memcache, ningún protocolo en el de Memcache.

Además, asegúrese de tener el archivo .so que está intentando cargar. Son dos paquetes separados a través de apt-get o yum o cualquier sabor que uses.

Cualquier rotura debido a la carga del módulo incorrecto o al uso de una sintaxis incorrecta provoca un retraso de carga de 30 segundos en php mientras intenta utilizar su mecanismo de sesión y, finalmente, se agota el tiempo de espera.

Espero que eso le ahorre a alguien algo de tiempo. ;-)

Respuesta2

¡Memcached de php NO es memcache de php! Son implementaciones separadas.

¿Qué te aporta un simple 'session.save_path = "127.0.0.1:11211"'? O

session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

Tenga en cuenta la 'd' que falta en save_handler.

Respuesta3

Cambie la extensión PHP de memcached.so a memcache.so. Esto resuelve todos los problemas de retraso. No estoy seguro si es un error de Ubuntu o un error con mi configuración, pero ahora funciona muy bien.

información relacionada