Por alguna extraña razón, hoy nuestro servidor decidió ser muy lento durante el inicio de las sesiones. Para cada session_start, el servidor agota el tiempo de espera después de 30 segundos o le llevará unos 20 segundos iniciar la sesión. Esto es muy extraño, ya que no lo ha hecho por mucho tiempo (la última vez que nuestro servidor hizo esto fue hace unos 7 meses). Intenté cambiar la sesión para que se ejecutara en una base de datos, pero funciona bien, sin embargo, a medida que se construye nuestro sitio web actual, tomaría días para ir a cada página y cambiar la carga de sesiones para incluir una nueva sesión entrenador de animales. Por lo tanto, mi pregunta sigue siendo:session_start parece ser muy lento (pero solo algunas veces)
¿Por qué es tan lento, y por qué solo algunas veces?
Funcionamos en un servidor dedicado de Hetzner con 24 GB de RAM y una CPU lo suficientemente rápida como para ejecutar un simple servidor web (un Xeon, creo, pero no estoy seguro). Ejecutamos Debian en el servidor con una configuración apache + fastcgi + php5.
El servidor no informa mucha carga, ni a través del estado del servidor ni del comando top
. Vnstat
informa que no hay ningún problema con nuestro enlace de red (una vez más, eso no resultaría en un lento manejo de la sesión local). IOtop
informa que no hay problema con los procesos que toman todo el disco duro. Escribir en la carpeta tmp donde se encuentran los archivos de sesión funciona rápidamente si se hace a través de vim.
De nuevo, para dejar esto en claro, mi principal preocupación aquí no es si debemos cambiar a una base de datos o una versión de las sesiones almacenada en la memoria caché, es simplemente para preguntar por qué sucede esto, porque todo lo que tomo mira parece estar funcionando bien, a excepción del PHP en sí.
EDIT: El archivo máximo en nuestro directorio PHP tmp es de 2,9 MB, por lo que nada que tenga un impacto, creo.
ACTUALIZACIÓN: Nunca me di cuenta de lo que estaba mal y/o cómo solucionarlo, pero el problema desapareció después de que cambiamos a las sesiones de memcached/db.
Eche un vistazo a su directorio 'tmp'. PHP almacena sus sesiones allí. Ve si algo anda mal. – freshnode
¿Algo malo con el disco o el sistema de archivos, tal vez? – Jon
"tomaría días ir en cada página y cambiar la carga de sesiones para incluir un nuevo controlador de sesión" Si ese es el caso, seriamente debería considerar corregir ese hecho primero – PeeHaa