我们的配置文件近一步丰富了一些 。
thread_pool default_pool threads=16;##main上下文...location /video {sendfile on;sendfile_max_chunk 128k;directio 8M;aio threads=default_pool;}
当线程池中所有的线程都处于busy状态,那么新的task请求将会加入到等待队列 。我们可以在thread_pool中使用max_queue参数来指定队列的大小,默认队列大小为65536,当队列已满后续的请求将会抛出error 。
ENDnginx官方宣称使用多线程模式,在aio读取文件场景下,性能有9倍的提升,但我还是对这个测试具有一定怀疑态度 。
多线程 + aio在一定程度的确可以提高文件IO的读取性能,但是对于大文件而言,这似乎并没有想象的那么优秀 。这受制于linux平台底层的本身特性,除非nginx自己对文件cache做了额外的操作 。
到目前为止,xjjdog仍有以下建议(供参考):
- 1)对于小文件的静态代理,我们应该开启sendfile,这对性能的提升是显著的 。
- 2)对于大文件读取(低频),我们可以尝试开启aio、directio,在提升并发能力的前提下,关注request的实际响应效率;既然官方推荐这么用,我们可以报以尝试的态度 。
- 3)对于高频大文件读取,aio、directio的性能或许提升并不显著,但应该不会降低性能 。
推荐阅读
- 淘宝怎样优化关键词 淘宝如何提升关键词排名
- 淘宝权重怎么做上去 淘宝权重怎么提升权重
- 淘宝店铺过户店铺信誉还有吗 0信誉店铺怎么提升
- 淘宝关键词排名优化技巧 淘宝如何提升关键词排名
- 造型美观,性能均衡AOC战神937系列一体机评测
- 淘宝商家等级怎么提升 淘宝店铺怎么升等级
- 茶叶可以提高性能力,麦冬和绿茶
- 连爆10W+?微头条展示细节揭秘!写手必备!提升阅读量
- 淘宝关键词权重怎么提升 淘宝关键词排名优化技巧
- 电脑运行慢?并不是它的性能不行,关掉一个开关,让你电脑飞起来