2011-09-13 24 views
10

pregunta simpleNginx Sirviendo archivo grande estática

http://mysite.com/bigFile.avi archivo #Esta es 800 Mb

cuando se utiliza este enlace y descargar el bigFile.avi de mi navegador, servidor Nginx Mi salta a la carga de la CPU al 100% durante la sesión de descarga, contenido estático, sin php. (los scripts php normales usan 1-3% de CPU)

Me pregunto si esto es normal para mi servidor? ¿Consume tanta CPU para servir archivos de gran tamaño?

(i incluso apago el gzip en la configuración de nginx, pero no hay mucha diferencia)

Respuesta

9

Ven a ver estos artículos

Admitiré que algo de eso me supera. Pero, en resumen, sugieren deshabilitar sendfile, habilitar aio y aumentar los buffers de salida si está enviando archivos grandes (> 4MB). Lo que me llevé es que la mayoría de las configuraciones predeterminadas del servidor suponen que se enviarán muchos archivos pequeños, en lugar de pocos o muchos archivos grandes. Estos dos escenarios diferentes pueden requerir configuraciones muy diferentes para funcionar de manera eficiente.

10

Como nginx puede escribir archivos de gran tamaño en el disco antes de enviarlos al cliente, a menudo es una buena idea para desactivar esta caché si el sitio va a servir archivos estáticos grandes, con algo como:

location/{ 
    proxy_max_temp_file_size 0; 
} 
Cuestiones relacionadas