Nginx服务静态大文件

时间:2011-09-13 01:33:58

标签: file nginx config performance

简单的问题

http://mysite.com/bigFile.avi#这个文件是800Mb

当我使用此链接并从浏览器下载bigFile.avi时 我的Nginx服务器在下载会话期间跳转到100%CPU负载,静态内容,没有php。 (普通的php脚本使用1-3%的CPU)

我想知道我的服务器是否正常? 它耗费了大量的CPU来提供大文件吗?

(我甚至关闭了nginx配置中的gzip,但差别不大)

2 个答案:

答案 0 :(得分:12)

由于nginx可以在将大文件发送到客户端之前在磁盘中写入大文件,如果网站要提供大型静态文件,通常最好禁用此缓存,例如:

location / {
    proxy_max_temp_file_size 0;
}

答案 1 :(得分:9)

看一下这些文章

我承认其中一些不在我身边。但总之,如果您要发送大型(> 4MB)文件,他们建议禁用sendfile,启用aio,并增加输出缓冲区。我拿走的是大多数默认服务器配置假设将发送许多小文件,而不是少数或许多大文件。这两种不同的场景可能需要一些非常不同的配置才能有效地工作。

相关问题