2008-09-24 13 views
8

Sé que esto no es directamente una cuestión de programación, pero la gente en stackoverflow parece ser capaz de responder cualquier pregunta.nginx pregunta de configuración

Tengo un servidor que ejecuta Centos 5.2 de 64 bits. Bastante potente servidor de doble núcleo 2 con 4 GB de memoria. Principalmente sirve archivos estáticos, flash e imágenes. Cuando uso lighttpd, me sirve fácilmente más de 80 MB/seg, pero cuando pruebo con nginx, desciende a menos de 20 MB/seg.

Mi configuración es bastante simple, utiliza el archivo de configuración por defecto, y he añadido el siguiente

user lighttpd; 
worker_processes 8; 
worker_rlimit_nofile 206011; 
#worker_rlimit_nofile 110240; 

error_log /var/log/nginx/error.log; 
#error_log /var/log/nginx/error.log notice; 
#error_log /var/log/nginx/error.log info; 

pid  /var/run/nginx.pid; 


events { 
    worker_connections 4096; 
} 

http { 
.... 

keepalive_timeout 2; 
.... 
} 

Y pensé nginx se suponía que era por lo menos tan potente, lo que debe ser no hacer algo .

+0

¿Cómo se ve tu configuración lighttpd? Podría ser interesante comparar Además, dado que lighttpd tiene un solo subproceso, pero tiene doble núcleo: ¿inicia dos lighttpds o maneja 80mb/s con una sola instancia? – Till

+0

¿Puedes delinear tu método de prueba? Eso podría ayudar. –

+0

Este es un servidor web extremadamente activo que solo hace archivos estáticos. El lighttpd y el nginx están instalados con yum en la casilla centos 5. Muy sencillo desde allí. Todo se supervisa con munin y sesiones activas en el equilibrador de carga. La caja con nginx hace el 50% de lo que hace lighty –

Respuesta

3

¿Quizás lighttpd está utilizando algún tipo de almacenamiento en caché? Hay un gran artículo here que describe cómo configurar memcached con nginx para un aumento del rendimiento reportado del 400%.

El documento nginx en el módulo memcached es here.

6

Al volver a cargar el nginx (kiil HUP) que obtendrá algo como esto en sus registros de errores

 
2008/10/01 03:57:26 [notice] 4563#0: signal 1 (SIGHUP) received, reconfiguring 
2008/10/01 03:57:26 [notice] 4563#0: reconfiguring 
2008/10/01 03:57:26 [notice] 4563#0: using the "epoll" event method 
2008/10/01 03:57:26 [notice] 4563#0: start worker processes 
2008/10/01 03:57:26 [notice] 4563#0: start worker process 3870 

Qué método de evento es su nginx compilado para usar?

¿Estás haciendo access_loging? Considere agregar buffer = 32k, lo que reducirá la contención en el bloqueo de escritura para el archivo de registro.

Considere la posibilidad de reducir el número de trabajadores, parece contra-intuitivo, pero los trabajadores necesitan sincronizarse entre ellos para llamadas a sistemas como accept(). Intente reducir el número de trabajadores, lo ideal sería que sugeriría 1.

Usted puede tratar de establecer explícitamente la lectura y escritura buffers de los conectores en el socket de escucha, veo http://wiki.codemongers.com/NginxHttpCoreModule#listen

1

Sugerencias: - Uso 1 trabajador por cada procesador. - Comprueba las distintas configuraciones del búfer nginx

Cuestiones relacionadas