优化nginx的大文件下载

嘿,我想知道什么是一些一般的选项,我应该考虑优化nginx服务器大文件下载(通常100MB到6GB)。 我刚刚从lighttpd移植过来,我注意到在下载过程中,速度很快波动很大。 我熟悉波动的速度,但不是在这个速度,lighttpd没有几乎波动。 我想知道是否有一些一般的东西,我应该看看,对nginx是新的。 我应该增加工人数量等

我正在浏览HttpCoreModule的wiki页面,并且发现了诸如directio选项之类的东西:

该指令允许使用标志O_DIRECT(FreeBSD,Linux),F_NOCACHE(Mac OS X)或directio()函数(Solaris)读取大小超过指定大小的文件。 该指令禁止将sendfile用于此请求。 这个指令可能对大文件有用

那会是一个尝试的select吗? 感谢球员,我感谢帮助。

我知道我的问题可能相当广泛,但就像我刚才所说的,对于nginx新手我想知道我可以用什么样的选项来优化服务器以进行文件下载。 我知道各种各样的东西起作用,但是我也知道lighttpd在同一台服务器上的波动并不多。

谢谢!

你有多less公羊? 你的服务器有什么样的工作量? 是只服务大文件,还是服务较小的文件和/或代理请求?

当一组活动文件大于RAM时,DirectIO是有用的,所以它们不适合caching,并且caching它们是没有用的 – 最好直接从磁盘读取它们,并将caching留给别的东西。

至于flucations – 这可能是由于nginx工作者locking磁盘操作(默认情况下它们是同步的)。 尝试增加工作人员数量或尝试使用asynchronousI / O(aio on)。 但要小心:太exception了,或者大量的工人可能会造成更大的寻求比例,所以总体速度可能会大幅下降。