Tengo un sitio de muy bajo tráfico ejecutándose en nginx, con 4 trabajadores, 1024 conexiones cada uno.
Cada varias horas empiezo a ver en el registro de errores "1024 conexiones_de_trabajo no son suficientes" y mi sitio se ralentiza / se vuelve inestable. Un reinicio de nginx resuelve el problema por completo durante las próximas horas.
Claramente está sucediendo algo extraño, no hay forma de que esté sirviendo a 4k usuarios concurrentes de mi aplicación.
Además de mirar el registro de acceso (que parece normal), ¿hay alguna manera de observar con mayor detalle lo que está haciendo nginx?
¿Existe alguna combinación de configuración notoria que pueda provocar que las conexiones antiguas se mantengan abiertas y no cerradas?
Gracias.
editar esto no se ve bien
# lsof |grep nginx |grep CLOSE_WAIT |wc -l
1271
Respuestas:
Sin proxy pass / reverse proxy
Con proxy inverso
2 es porque abres una conexión con lo que estás representando
Sin embargo, X son muchas conexiones simultáneas que estos clientes te hacen
Para ver qué conexiones están dando vueltas, podrías correr
lsof -i :PORT
. Mostrará todas las conexiones abiertas a nginx y su estado.fuente