If we want to know how many connections could be handled by Nginx the basic formula is max_clients = worker_processes * worker_connections
. So, here’s a breakdown.
Prerequisites
- Nginx
Solution
worker_processes
are single-threaded process which value is usually determined by number of CPU cores. Setting its value to auto is somehow considered as a best practice.
worker_connections
on the other side are representing the number of simultaneous connections. Default value of 512. However, you could update this limitation in the main nginx.conf
file under worker_connections <no_of_conn>
. The maximum value which should be confirmed first and then set by running ulimit -n
(maximum number of open file descriptors allowed for a user or a process. A file descriptor is a unique ID used by the OS to access files, devices, or other resources).
So, with two CPU cores and 512 connections you would have max_connections
= 2 * 512 = 1024.
Still, from a process and threads perspective you could think of it as:
worker_process
= OS processworker_connections
= number of threads
Conclusion
In case you face any issues, feel free to leave a comment below and if you find this tutorial useful, follow our official channel on Telegram.