单核下运行nginx的一些挑战
单核情况下,增加worker
进程数量是克服单个CPU
核心瓶颈的一个很好的方法,但可能会带来一系列新的问题。
通常有三种针对TCP
服务器性能调优的方式:
- 单个套接字监听,单个工作进程
- 单个套接字监听,多个工作进程
- 多个工作进程,每个进程有单独的监听套接字
单个套接字监听,单个工作进程模型:
这个模型是最简单的,因为该模型下对于请求的处理被限制在单个CPU
上。
单个工作进程同时执行以下操作:
- 接收
accept()
调用 - 处理请求
这个模型是首选的Lighttpd
设置。
单个套接字监听,多个工作进程模型:
新连接位于单个内核数据结构中(套接字监听),多个工作进程同时执行accept()
调用和处理请求。
该模型支持在多个cpu
之间分发入站连接,这是NGINX
的标准模型。
结论