
Utilizo nginx para servir el contenido estático de uno de mis sitios web bastante ocupados. Tengo el registro deshabilitado y 4 procesos de trabajo habilitados con 5000 conexiones por trabajador (lo que debería producir un límite máximo de conexiones de 20 000).
El servidor solo funciona con aproximadamente un 10 % de uso de CPU y un 50 % de RAM, pero es muy lento y, a veces, nginx tarda tanto en responder a las solicitudes que se agota el tiempo de espera. Para una pequeña cantidad de conexiones, está bien, pero una vez que comienza a ocurrir cualquier carga (~2500 conexiones), retrocede y se atasca.
¿Hay otros cuellos de botella o límites que podría estar alcanzando? Este es un servidor FreeBSD y todos los archivos estáticos se encuentran localmente (no NFS). La NIC es un gigabit no medido y solo usa alrededor de 75 megabits.
Cualquier idea sería apreciada. Gracias.
Respuesta1
Algunas sugerencias sobre dónde mirar:
- Debe tener habilitado el registro de errores y mirar allí todo el tiempo. Da mucha información.
- ¿Qué es la hastalización IO?
- ¿Tienes Munin instalado? Los gráficos de Munin también brindan mucha información.
- ¿Tiene el módulo nginx-status habilitado en Nginx? En caso afirmativo, ¿qué números muestra?
- ¿Qué más aplicaciones se están ejecutando en su servidor? ¿Pueden afectar el rendimiento?
- ¿Qué tipo de archivos estáticos está sirviendo? Específicamente de qué tamaño