线程池机制使nginx性能提高9倍
原文标题:Thread Pools in NGINX Boost Performance 9x!
原文官方地址:https://www.nginx.com/blog/thread-pools-boost-performance-9x/
本文为译文,非直译。
一、问题
一般情况下,nginx 是一个事件处理器,一个从内核获取连接事件并告诉系统如何处理的控制器。
实际上,在操作系统做读写数据调度的时候,nginx是协同系统工作的,所以nginx能越快响应越好。
nginx处理的事件可以是 超时通知、socket可读写的通知 或 错误通知。nginx 接收到这些消息后,会逐一进行处理。
但是所有处理过程都是在一个简单的线程循环中完成的。
nginx 从消息队列中取出一条event后执行,例如 读写socket的event。在大多数情况下这很快,Nginx瞬间就处理完了。
如果有耗时长的操作发生怎么办?整个消息处理的循环都必须等待这个耗时长的操作完成,才能继续处理其他消息。
所以,我们说的“阻塞操作”其实意思是长时间占用消息循环的操作。
操作系统可能被各种各样的原因阻塞,或者等待资源的访问,例如硬盘、互斥锁、数据库同步操作等。
例如,当nginx 想要读取没有缓存在内存中的文件时,则要从磁盘读取。
但磁盘是比较缓慢的,即使是其他后续的事件不需要访问磁盘,他们也得等待本次事件的访问磁盘结束。
结果就是延迟增加和系统资源没有被充分利用。
有些操作系统提供了异步读写文件接口,在nginx中可以使用这些接口(http://nginx.org/en/docs/http/ngx_http_core_module.html?&&&_ga=1.197764335.1343221768.1436170723#aio)。
例如FreeBSD就是一个较好的例子,但不幸的是,linux提供的一系列异步读文件接口有不少缺陷。
其中一个问题是:文件访问和缓冲需要队列,但是Nginx已经很好解决了。
但是还有一个更严重的问题:使用异步接口需要对文件描述符设置O_DIRECT标识,这意味着任何对这个文件的访问会跳过缓存直接访问磁盘上的文件。
在大多数情况下,这不是访问文件的最佳方法。
二、线程池
为了解决这个问题,Nginx 1.7.11 引入了线程池概念。现在让我们了解一下线程池是怎样工作的。
在nginx中,线程池执行的是分发服务,他由一个任务队列和一些执行任务的线程组成。
当一个工作线程在执行一个可能会存在潜在长时间操作的任务时,这个任务会被”卸下“并重新放到任务队列中去,这个被”卸下“的任务可能会被其他线程再执行。
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABgAAAAMBCAIAAACm6Og+AAAgAElEQVR4nOzdd3wUdf7HcSI27pQmIiKKCvezHpaznGI5PQ8pYvdOAUVCkSpFpEkRUAhdsCLVhlKkiigiqBTpPZBkd5NsSzbZbJLNZvvOzO+PPfeWnU12NtnNJpvX8/H9Sz7zne/MTjaZt9/5TgMJAAAAAAAASa1BogcAAAAAAACA+CIAAgAAAAAASHIEQAAAAAAAAEmOAAgAAAAAACDJEQABAAAAAAAkOQIgAAAAAACAJEcABAAAAAAAkOQIgAAAAAAAAJIcARAAAAAAAECSIwACAAAAAABIcgRAAAAAAAAASY4ACAAAAAAAIMkRAAEAAAAAACQ5AiAAAAAAAIAkRwAEAAAAAACQ5AiAAAAAAAAAkhwBEAAAAAAAQJIjAAIAAAAAAEhyBEAAAAAAAABJjgAIAAAAAAAgyREAAQAAAAAAJDkCIAAAAAAAgCRHAAQAAAAAAJDkCIAAAAAAAACSHAEQAAAAAABAkiMAAgAAAAAASHIEQAAAAAAAAEmOAAgAAAAAACDJEQABAAAAAAAkOQIgAAAAAACAJEcABAAAAAAAkOQIgAAAAAAAAJIcARAAAAAAAECSIwACAAAAAABIcgRAAAAAAAAASY4ACAAAAAAAIMkRAAEAAAAAACQ5AiAAAAAAAIAkRwAEAAAAAACQ5AiAAAAAAAAAkhwBEAAAAAAAQJIjAAIAAAAAAEhyBEAAAAAAAABJjgAIAAAAAAAgyREAAQAAAAAAJDkCIAAAAAAAgCRHAAQAAAAAAJDkCIAAAAAAAACSHAEQAAAAgKjZbLasrKyDBw/u2bNnz549R44cycnJcblcMd+R1WrNzMz072jv3r1Hjx7Nzc11u90x3xEAJDcCIAAAgERaGztbtmwJdFtWVvbdd9+FFOzevdvn80Uc0t69e0M2/O6774qLi0PKMjIyIg7p22+/3bFjx6lTp+x2u8ITUlJSsmHDhuqch/3794uiqHB3JpNJPubc3FyFm0uS5HQ6lYzKfyrOnDnjdDqVd66Ey+VSMoBNmzbt3r1bq9UKglCd3Xm93tWrV3fv3v3qq6++/PLLmzVr1qRJkyZNmjRv3vyKK65o167dq6++unPnTiVXWuXsdvsXX3zRrVu34B01bdrUv6P27dv369dv7969yjs8efJkyDnZsGGD/MIGgGRFAAQAAJBIDWKnVatWgW4zMjKuuuqqkILOnTsrSR+eeuqpkA1bt2595MiRkLJZs2YpH9uFF1546623vv76699//31BQUElez9+/Pgll1xSnfPw4osvKkwfRFGcNm1ayOYpKSmjRo1Snl/k5eVFNbyLL7749ttvHz58+ObNm6sfx0iSVFhYGNUAmjZt+thjj82dO/fIkSMej0f5jrKzs2fOnCm/ruRSUlLuvPPOL774wmQyRXs4giBkZWW9++67bdq0UXI4d91115dffqkkxxk7dmzItn/+858PHz4c7QgBoI4iAAIAAEikqG7dK1ebA6CASy655J577vnmm28qSlhqMgAqLi5+9NFH5T3ceuut5eXlSnqQog+AAho1atShQ4fp06c7HA6F+wor2gDILyUl5corr3z++efPnj0bcRc+n2/VqlW33HLL+eefr3wX559//iOPPBJtwvLVV1/dfPPNKSkpynfUqFGjhx9+WH6JhiAAAlDPEQABAAAkkvK73IjqRADkd/7557/zzjthB1OTAdDx48ebNGkStpOdO3cq6UGqRgAUcPPNN588ebLKU4GqFgAFXH/99QcOHKikf5/Pt2jRokaNGlWt/+bNm+/evVvJ0blcrrlz55533nlV29FVV13166+/VtI/ARCAeo4ACAAAIJGqdq8bVh0KgBo0aJCSkjJlyhT5msE1GQCNHz++ok4eeeQRhQsJVT8AatCgwXXXXbd582Ylu5OrZgDUoEGDa6+9tqLpM4IgzJ07t5qfyBVXXPHjjz9WfhQej2fGjBkNGzaszo6uu+66ffv2VbQLAiAA9RwBEAAAQCJV53Y3RN0KgBo0aHDZZZf9/vvvId3WWADk8XiaNWtWUScpKSknT55U8AHGJgBq0KBBo0aNqhZGVD8AatCgwUMPPRR2oe7169dfcMEFFW114YUX3nnnnV27du3cufO1115byeSdW265pfJrb/fu3ZVMMrr44ov/9re/de/e/V//+tc111xTyYFcffXVBoMh7C4IgADUcwRAAAAAiTS6YmGXp3nxxRcrqp86dWqg20QFQBvPtXbt2g8++GDQoEG33XZb2Mkdr732Wki3YQOghx56KE2xTZs2KXngaOXKlZXkCA0aNJg8ebKSSUBhA6D7778/ZFTvvvvuyJEjn3vuuZtvvrmieS433XRTdnZ2xD2G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nPoHALSAAAQAAAAAAKBzBCAAAAAAAACdIwABAAAAAADoHAEIAAAAAABA5whAAAAAAAAAOkcAAgAAAAAA0DkCEAAAAAAAgM4RgAAAAAAAAHSOAAQAAAAAAKBzBCAAAAAAAACdIwABAAAAAADoHAEIAAAAAABA5whAAAAAAAAAOkcAAgAAAAAA0DkCEAAAAAAAgM4RgAAAAAAAAHSOAAQAAAAAAKBzBCAAAAAAAACdIwABAAAAAADoHAEIAAAAAABA5whAAAAAAAAAOkcAAgAAAAAA0DkCEAAAAAAAgM4RgAAAAAAAAHSOAAQAAAAAAKBzBCAAAAAAAACdIwABAAAAAADoHAEIAAAAAABA5whAAAAAAAAAOkcAAgAAAAAA0DkCEAAAAAAAgM4RgAAAAAAAAHSOAAQAAAAAAKBzBCAAAAAAAACdIwABAAAAAADoHAEIAAAAAABA5whAAAAAAAAAOkcAAgAAAAAA0DkCEAAAAAAAgM4RgAAAAAAAAHSOAAQAAAAAAKBzBCAAAAAAAACdIwABAAAAAADoHAEIAAAAAABA5whAAAAAAAAAOkcAAgAAAAAA0DkCEAAAAAAAgM4RgAAAAAAAAHTu/wPZBMZYkfLiiAAAAABJRU5ErkJggg==" alt="" width="1004" height="457" />
现在,只有2个基础操作会造成“卸下任务”到任务队列:
1.在大多操作系统上的read()系统调用
2.linux系统的sendfile()
如果这个机制被证实是有益于nginx的,我们以后还会添加其他的操作。
三、线程池并非灵丹妙药
大多数读写文件操作都需要通过缓慢的磁盘。如果有充足的内存来存储数据,那么操作系统会缓存频繁使用的文件,也就是“页面缓存”(page cache)机制。
由于页面缓存机制,nginx几乎在所有情况下都能体现非常好的性能。
通过页面缓存读取数据非常快,并且不会阻塞。
另一方面,卸下任务到任务池是有瓶颈的。
所以在内存充足并且使用的数据不是非常大的时候,nginx即使不使用线程池也是几乎工作在最佳状态。
卸下写操作到任务池中,是一个适用于特殊场景的处理方案,适用于大量无法使用VM缓存的请求操作。
例如一个高负荷的基于Nginx的视频流服务器。
另外FreeBSD的用户不需要担心这些,因为FreeBSD已经有很好的异步读操作接口,无需使用线程池。
四、配置线程池
如果你确定在你的场景中适合使用线程池,那么一起看看如何配置线程池。
准备工作步骤如下:
1.使用 nginx 1.7.11 或更新的版本
2.使用--with-threads参数编译nginx
最简单的例子,添加一个aio线程标识(可以添加到http、server 或 location段中):
aio threads;
这是一个最简单的配置例子,等于以下的配置:
# in the 'main' context
thread_pool default threads= max_queue=; # in the 'http', 'server', or 'location' context
aio threads=default;
以上配置定义了一个叫 default 的线程池,有32个工作线程,任务队列最大存放65536个任务。
如果任务队列满了,nginx会抛弃任务并打印以下日志:
thread pool "NAME" queue overflow: N tasks waiting
当出现了这个日志,这意为着你可以调大你的任务队列,或者你的系统无法处理这么多任务。
所以综上所述,你可以配置你的 线程数,任务队列长度,线程池名称。
你也可以设置多个线程池,用在不同的地方:
# in the 'main' context
thread_pool one threads= max_queue=;
thread_pool two threads=; http {
server {
location /one {
aio threads=one;
} location /two {
aio threads=two;
} }
…
}
如果max_queue,也就是任务队列长度未指定,那么长度默认为65536.
max_queue也可以设置为0,这样线程池只能处理和线程数一样多的任务,不会有任务存储在任务队列中。
现在假设你有一台有3个硬盘的服务器,你希望这台服务器作为缓存代理使用,这是你CDN的一个缓存节点,缓存的数据已经超过了可用内存。
在这个场景中最重要的事情就是提高磁盘读写的性能。
一个方案就是使用RAID,另一个方案就是使用Nginx:
# We assume that each of the hard drives is mounted on one of these directories:
# /mnt/disk1, /mnt/disk2, or /mnt/disk3 # in the 'main' context
thread_pool pool_1 threads=;
thread_pool pool_2 threads=;
thread_pool pool_3 threads=; http {
proxy_cache_path /mnt/disk1 levels=: keys_zone=cache_1:256m max_size=1024G
use_temp_path=off;
proxy_cache_path /mnt/disk2 levels=: keys_zone=cache_2:256m max_size=1024G
use_temp_path=off;
proxy_cache_path /mnt/disk3 levels=: keys_zone=cache_3:256m max_size=1024G
use_temp_path=off; split_clients $request_uri $disk {
33.3% ;
33.3% ;
* ;
} server {
…
location / {
proxy_pass http://backend;
proxy_cache_key $request_uri;
proxy_cache cache_$disk;
aio threads=pool_$disk;
sendfile on;
}
}
}
在配置中,thread_pool 指令给每个磁盘定义了独立的线程池;
proxy_cache_path指令给每个磁盘定义独立的缓存路径、参数;
split_clients 模块用于多个缓存(也就是多个磁盘)的负载均衡,这个解决方案很符合该使用场景;
proxy_cache_path中的use_temp_path=off参数让nginx存储临时文件到缓存目录,这可以避免更新缓存时的磁盘间数据拷贝。
以上的例子说明可以根据自身硬件灵活调整nginx,
通过细微调整,可以让你的软件、操作系统、硬件协同工作在最佳状态,尽可能的利用所有资源。
结论
线程池机制是一个非常好的机制,通过解决大量数据情况下导致的阻塞问题,
使得nginx的性能达到一个新的高度。
如之前提到的,接下来会有新的接口可能会实现在不损耗性能的情况下实现”卸下“任务机制。
注:原文中的一些翻译
(1)offloading 翻译为 卸下,其实就是把一个任务塞回到任务池中;
(2)原文中有提到把任务offloading到thread pool中,但其实是task是存放在task pool中,所以我译为”把任务卸下到任务池中“;
(3)性能测试阶段译文略过,可以参考原帖
线程池机制使nginx性能提高9倍的更多相关文章
- 将Web应用性能提高十倍的10条建议
导读 提高 web 应用的性能从来没有比现在更重要过.网络经济的比重一直在增长:全球经济超过 5% 的价值是在因特网上产生的(数据参见下面的资料).这个时刻在线的超连接世界意味着用户对其的期望值也处于 ...
- 将 Web 应用性能提高十倍的10条建议
提高 web 应用的性能从来没有比现在更重要过.网络经济的比重一直在增长:全球经济超过 5% 的价值是在因特网上产生的(数据参见下面的资料).这个时刻在线的超连接世界意味着用户对其的期望值也处于历史上 ...
- Linux——网络编程线程池机制
#include <stdlib.h>#include <pthread.h>#include <unistd.h>#include <assert.h> ...
- PayPal为什么从Java迁移到Node.js 性能提高一倍 文件代码减少44%
大家都知道PayPal是另一家迁移到Node.js平台的大型公司,Jeff Harrell的这篇博文 Node.js at PayPal 解释了为什么从Java迁移出来的原因: 开发效率提高一倍(2 ...
- 启用reuse_port参数让Nginx性能提升3倍
为什么启用 reuse_port 记得 2008 年做性能测试的时候,新进7台 lenovo 4核4G 服务器用于性能测试. 当时资源紧张,这7台服务器都装了双系统(Win2003/CentOS5)空 ...
- Nginx 引入线程池,提升 9 倍性能
转载:http://blog.csdn.net/wuliusir/article/details/50760357 众所周知,NGINX 采用异步.事件驱动的方式处理连接.意味着无需对每个请求创建专门 ...
- NGINX引入线程池 性能提升9倍
1. 引言 正如我们所知,NGINX采用了异步.事件驱动的方法来处理连接.这种处理方式无需(像使用传统架构的服务器一样)为每个请求创建额外的专用进程或者线程,而是在一个工作进程中处理多个连接和请求.为 ...
- Nginx 的线程池与性能剖析
http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt158 正如我们所知,NGINX采用了异步.事件驱动的方法来处理连接.这种处理方 ...
- Nginx 的线程池与性能剖析【转载】
正如我们所知,NGINX采用了异步.事件驱动的方法来处理连接.这种处理方式无需(像使用传统架构的服务器一样)为每个请求创建额外的专用进程或者线程,而是在一个工作进程中处理多个连接和请求.为此,NGIN ...
随机推荐
- redux-thunk
1.thunk function createThunkMiddleware(extraArgument) { return ({ dispatch, getState }) => next = ...
- ASP.NET没有魔法——ASP.NET MVC Razor与View渲染 ASP.NET没有魔法——ASP.NET MVC界面美化及使用Bundle完成静态资源管理
ASP.NET没有魔法——ASP.NET MVC Razor与View渲染 对于Web应用来说,它的界面是由浏览器根据HTML代码及其引用的相关资源进行渲染后展示给用户的结果,换句话说Web应用的 ...
- jQuery选择器特殊字符与属性空格问题
一.选择器中含有特殊符号的注意事项 1.选择器中含有“.”.“#”.“(”或“]”等特殊字符 根据W3C的规定,属性值中是不能含有这些特殊字符的,但在实际项目中偶尔会遇到表达式中含有“#”和“.”等特 ...
- Android耳机线控具体解释,蓝牙耳机button监听(仿酷狗线控效果)
转载请注明出处:http://blog.csdn.net/fengyuzhengfan/article/details/46461253 当耳机的媒体按键被单击后.Android系统会发出一个广播.该 ...
- AIX下RAC搭建 Oracle10G(五)安装oracle、建立监听
AIX下RAC搭建系列 AIX下RAC搭建 Oracle10G(五)安装oracle.建立监听 环境 节点 节点1 节点2 小机型号 IBM P-series 630 IBM P-series 630 ...
- Ctags基本配置
一般linux系统都会自带ctags,也可输入"ctags"看有木有该命令.有的话速度配置吧,没有话yum install ctags安装吧. 打开vim 配置文件,要是没该文件就 ...
- 深入分析JavaWeb Item13 -- jsp指令具体解释
一.JSP指令简单介绍 JSP指令(directive)是为JSP引擎而设计的.它们并不直接产生不论什么可见输出,而仅仅是告诉引擎怎样处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指 ...
- Spring Security调研记录【七】--核心模型与实现
网上有非常多关于Spring Security文章中,都觉得Spring Security(相对于shiro)过于复杂,个人觉得复杂的是Spring Security的官方文档而不是Spring Se ...
- linux input子系统 — TP A/B(Slot)协议【转】
本文转载自:http://blog.csdn.net/u012719256/article/details/53609906 将A/B协议这部分单独拿出来说一方面是因为这部分内容是比较容易忽视的,周围 ...
- 《CMake实践》笔记二:INSTALL/CMAKE_INSTALL_PREFIX【转】
本文转载自:http://www.cnblogs.com/52php/p/5681751.html 四.更好一点的Hello World 没有最好,只有更好 从本小节开始,后面所有的构建我们都将采用 ...