首页 > 代码库 > nginx性能优化之线程池

nginx性能优化之线程池

默认情况下,nginx的work process按照顺序一个个处理http请求,因此如果后台处理时间较长,则work process会长时间等待IO状态,因此限制并发性。如下所示:

技术分享

所以,对于可能存在的这类http请求,一般会启用线程池。默认情况下,线程池特性并不启用,需要在编译时增加编译选项--with-threads包含该特性,然后在nginx.conf配置文件中定义线程池:

thread_pool MyPool threads=64;
   …
location /downloads/ {
    aio threads=MyPool;

    directio 8k;
    sendfile on;

}

这样的话,当客户端请求的文件超过8K时,就会适用AIO,否则适用sendfile。

nginx性能优化之线程池