gpt4 book ai didi

linux - nginx 工作进程最好为单个 cpu 拥有 1 个或多个进程?

转载 作者:太空宇宙 更新时间:2023-11-04 11:52:30 25 4
gpt4 key购买 nike

我听说了一件很有趣的事..

If we have 1 cpu and we spawn 2 worker processes, it means that each worker process uses 50% resource of that 1 cpu. If we had spawned 1 worker processes, resources from cpu for this worker process would be 100%. So for 1 cpu only, it's better to have only 1 single worker process.

然后他继续说:

worker_connections is how many connections each worker process can accept. I have 1024.

然后他又继续说:

So, worker_processes * worker_connections = max connections.

所以问题:如果 worker_processes * worker_connections = max connections,那么即使只有 1 个 cpu 也有 2 个工作进程不是很好吗?这样 2 * 1024 = 2048 个连接会比 1 * 1024 更好。我错了吗?

最佳答案

NGINX 使用事件驱动模型。大多数来自网络服务的事件,CPU 正在等待来自磁盘或网络的 IO。 Nginx 在等待某事发生时不会阻塞。

如果您要解决的问题是How do I get 2048 connections with one CPU? 那么您的最佳配置就是。

worker_processes number  auto;  
worker_connections 2048;

自动将默认为 CPU 数,即 1。

nginx 中的连接是轻量级的。它们不会占用太多内存。

如果你有 2 个 worker_processes 和 1 个 CPU,那么内核将不得不在这 2 个进程之间不断切换。这种上下文切换会增加一些您不需要的开销。

这里写得很好: https://www.nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale/

关于linux - nginx 工作进程最好为单个 cpu 拥有 1 个或多个进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55620337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com