基于这里的文档,https://nginx.org/en/docs/ngx_核心_module.html#worker_进程
worker_processes被定义为辅助进程的数量。
最优值取决于许多因素,包括(但不限于) CPU核的数量、存储数据的硬盘驱动器的数量以及加载模式。如果有疑问,将其设置为可用CPU核的数量将是一个好的开始(值“auto”将尝试自动检测它)。
大多数指南建议将此值设置为服务器上的核数,或设置为auto,自动将其设置为机器上的核数。
我在kubernetes上运行OpenResty,所以当我从openresty中检查CPU内核的数量时,它会返回物理机器(节点)的核数。但是,有了k8s上的CPU请求和限制,所有的8个核心都不能用于吊舱。
那么,在kubernetes情况下,worker_processes对于共享CPU的值应该是多少?
谢谢!
发布于 2021-12-12 14:47:26
很好的问题,我还在找答案。然而,目前我的想法是,Nginx + Kubernetes ( Nginx不是入口控制器)应该有工作进程= 1。为什么?每个工作流程都是容器中的一个新流程,一般的指导原则是,应该只有一个流程。因此,如果使用“auto”,Nginx将在单个容器中包含n+1进程,其中n是核心数。即使设置辅助进程=1,也是容器中的两个总进程。
假设Nginx非常擅长于维护其额外的过程,那么您可能可以使用“auto”,并在单个荚中利用Nginx。或者,您可以使用worker processes = 1,然后对外部的吊舱进行缩放以达到类似的规模。
最终,需要对不同场景进行一些性能测试,以确定其如何适用于应用程序。
https://serverfault.com/questions/1062891
复制相似问题