nginx工作进程之间的负载平衡

nginx工作进程之间的负载平衡,nginx,Nginx,我已经将nginx设置为使用4个工作进程,但其中只有一个正在处理所有请求。其他三个工人只是闲着。这是htop表格的截图 nginx.conf看起来像这样 worker_processes 4; events { worker_connections 10240; multi_accept on; use epoll; } worker_rlimit_nofile 20000; http { include mime.types;

我已经将nginx设置为使用4个工作进程,但其中只有一个正在处理所有请求。其他三个工人只是闲着。这是htop表格的截图

nginx.conf看起来像这样

worker_processes  4;
events {
   worker_connections  10240;
   multi_accept on;
   use        epoll;
}
worker_rlimit_nofile    20000;
http {
   include       mime.types;
   default_type  application/octet-stream;
   sendfile        on;
   keepalive_timeout  30;
   tcp_nopush on;
   tcp_nodelay on;
   client_body_timeout 10;
   reset_timedout_connection on;
   .........

服务器是一台EC2 C3大型机器,具有2个CPU核。任何帮助都将非常感谢

评论出
multi\u accept on这将使一个工作人员接受所有传入的连接,以便其他工作人员无事可做。

为什么要这样做?显然负载不够高,不需要很多工人,只需将工人设置为1;nginx正在写入视频文件(.ts/2秒),文件创建之间存在明显延迟。我认为这可能是因为只有一个worker正在处理所有传入流,它需要安排文件操作。您可以尝试将worker_连接数设置为正常连接数的1/4。假设您有20个已建立的连接,将worker_connections设置为5,然后第二个worker将在第一个已处理5个连接时接受作业。只是个主意。