Hace algún tiempo nos topamos con un problema interesante. En algún momento (no siempre, pretendamos que casi cada 100-200 visitas) session_start() lleva mucho tiempo. Hasta 60 segundos. (el más largo era 63, generalmente alrededor de 50).
El servidor ejecuta CentOS 6.5 (kernel de Linux 2.6.32-431.17.1.el6.x86_64) nginx/1.4.7 (sí, sé que es antiguo) + Apache/2.2.15 + PHP 5.3.3 (usando mod_php) Dos SSD Intel 530 hace Raid 0. Hay mucha RAM libre de 5+ GB. Intenté ajustar el valor de vm.swappiness, puede que se deba a alguna transacción de memoria-disco. No ayuda.
Aparece incluso si casi no hay carga en el servidor.
Sesión almacenada en archivos. Poner sesiones en ramdrive (tmpfs). No ayuda. Hay alrededor de cientos de archivos de sesión en el directorio. Entonces no debería haber problemas de búsqueda. A veces ocurre el mismo problema en incluir/requerir, php tarda unos segundos en cargar el archivo antes de comenzar a procesarlo. Entonces es algún problema de io. top/top no ha mostrado nada anormal mientras el proceso de inicio de sesión se bloquea.
salida free -m durante la suspensión
total used free shared buffers cached
Mem: 32101 23485 8616 0 1532 15642
-/+ buffers/cache: 6310 25790
Swap: 16383 1222 15160
libre -m salida normal
total used free shared buffers cached
Mem: 32101 23438 8662 0 1532 15623
-/+ buffers/cache: 6281 25819
Swap: 16383 1222 15160
nginx escribe esto al iniciar sesión en el momento de la desaceleración
29/09/2015 15:40:36 [advertencia] 16854#0: *14779 una respuesta ascendente se almacena en un archivo temporal /var/cache/nginx/proxy_temp/1/02/0000000021 mientras se lee ascendente
Intenté configurar proxy_max_temp_file_size pero sin ayuda.
Quizás alguien sepa cuál podría ser la razón, o en esta dirección investigar