Thanks, Sergey.

We are simulating 1000 clients. Some get cache hits, and some go upstream. So 
there are more than 1000 connections.

We have 24 workers running, each configured: events { worker_connections  1024; 
}

We are seeing the following errors from nginx:
[warn] 21151#21151: 1024 worker_connections are not enough, reusing connections
[crit] 21151#21151: accept4() failed (24: Too many open files)
[alert] 21151#21151: *15716 socket() failed (24: Too many open files) while 
connecting to upstream,

I am assuming the second and third error are for the OS limit. But the first 
seems to be from a worker process.

My assumption is that the client requests will be distributed over the 24 
worker processes. So no individual worker should come anywhere close to 1000 
connections.

But when I look at the process stats for the workers (ps command), I see a 
uneven distribution of CPU time used. Note that this is from a different run 
than the above logs.
UID        PID  PPID  C STIME TTY          TIME CMD
netskrt  16905 16902  2 12:19 ?        00:07:05 nginx: worker process
netskrt  16906 16902  1 12:19 ?        00:04:29 nginx: worker process
netskrt  16908 16902  1 12:19 ?        00:03:30 nginx: worker process
netskrt  16910 16902  0 12:19 ?        00:02:26 nginx: worker process
netskrt  16911 16902  0 12:19 ?        00:01:32 nginx: worker process
netskrt  16912 16902  0 12:19 ?        00:00:51 nginx: worker process
netskrt  16913 16902  0 12:19 ?        00:00:11 nginx: worker process
netskrt  16914 16902  0 12:19 ?        00:00:04 nginx: worker process
netskrt  16915 16902  0 12:19 ?        00:00:25 nginx: worker process
netskrt  16916 16902  0 12:19 ?        00:00:01 nginx: worker process
netskrt  16917 16902  0 12:19 ?        00:00:00 nginx: worker process
...

Is there anything we can configure to more evenly distribute the connections?

Thanks…

Roger


> On Jun 3, 2022, at 8:40 PM, Sergey A. Osokin <o...@freebsd.org.ru> wrote:
> 
> Hi Roger,
> 
> hope you're doing well.
> 
> On Fri, Jun 03, 2022 at 05:38:07PM -0700, Roger Fischer wrote:
>> Hello,
>> 
>> my understanding is that worker_connections applies to each worker
>> (eg. when set to 1024, 10 worker processes could handle up to 10240
>> connections).
> 
> That's exactly right.  Please read the following link [1] to get more
> details.
> 
>> But we are seeing 1024 worker_connections are not enough, reusing
>> connections from one worker while other workers are idle.
> 
> So, it's possibe to increase the number of those.
> 
>> Is there something we can do to balance connections more evenly
>> across workers?
> 
> Could you please add a bit more details on this.  Please note, that
> there were several improvements on that topic, so please follow the
> recommendations below.
> 
>> nginx version: nginx/1.19.9
> 
> Recent stable version is 1.22.0, [2] so I'd recommend to update to
> that version.
> 
> Thank you.
> 
> References
> 1. https://nginx.org/en/docs/ngx_core_module.html#worker_connections
> 2. http://nginx.org/en/CHANGES-1.22
> 
> --
> Sergey A. Osokin
> _______________________________________________
> nginx mailing list -- nginx@nginx.org
> To unsubscribe send an email to nginx-le...@nginx.org

_______________________________________________
nginx mailing list -- nginx@nginx.org
To unsubscribe send an email to nginx-le...@nginx.org

Reply via email to