看到有资料上说,一般把nginx的worker进程数设置成与CPU核心数一致。不理解这么做是什么原因?是因为几个核心就可以维持几个nginx的worker吗?
这与进程或者线程有什么关系?
请教,请详细解说一下。谢谢。
看到有资料上说,一般把nginx的worker进程数设置成与CPU核心数一致。不理解这么做是什么原因?是因为几个核心就可以维持几个nginx的worker吗?
这与进程或者线程有什么关系?
请教,请详细解说一下。谢谢。
"一般把nginx的worker进程数设置成与CPU核心数一致" 不是必须的,比如你自己的测试活着开发环境。
一个worker就是一个进程,与CPU核数一致的情况下,可以减少不必要的,因为系统调度造成的性能损失。
15 回答8.4k 阅读
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
2 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
这与两点有关,一是Ngnix一般只做高并发代理,基本没用IO操作,算是CPU密集操作,所以再处理时基本是瞬时完成的,很少出现IO阻塞。二是进程与CPU调度的关系,单个核心处理多个进程的时候,是排队处理的,所以将Worker进程数量设置超过核心数是没有太大意义的。