单核下运行nginx的一些挑战
单核情况下,增加worker进程数量是克服单个CPU核心瓶颈的一个很好的方法,但可能会带来一系列新的问题。
通常有三种针对TCP服务器性能调优的方式:
- 单个套接字监听,单个工作进程
- 单个套接字监听,多个工作进程
- 多个工作进程,每个进程有单独的监听套接字
单个套接字监听,单个工作进程模型:

这个模型是最简单的,因为该模型下对于请求的处理被限制在单个CPU上。
单个工作进程同时执行以下操作:
- 接收
accept()调用 - 处理请求
这个模型是首选的Lighttpd设置。
单个套接字监听,多个工作进程模型:

新连接位于单个内核数据结构中(套接字监听),多个工作进程同时执行accept()调用和处理请求。
该模型支持在多个cpu之间分发入站连接,这是NGINX的标准模型。
结论