What is the maximum nginx worker_connections I can set for my droplet?

Posted November 17, 2018 8k views
NginxUbuntu 18.04

I have a NodeJS API running on a 4GB Memory and 2 Core CPU Standard Droplets. The API has real time functionalities using and is serving around 500 concurrent users.

Lately I noticed that the API sometimes stop handling any requests for like 5 - 10 seconds and then continues to work.

When I checked Nginx error logs I found this alert occurring a lot :-

[alert] 7193#7193: 768 worker_connections are not enough

Could this be the issue making the API miss some requests?

And how do I know what is the maximum worker_connections I can set? Currently it is set to 768

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer

worker_connections is bound by worker_rlimit_nofile. So always set it to be equal or less than the value of worker_rlimit_nofile. worker_rlimit_nofile is bound by the ulimit of number of open files for the user (/etc/security/limits.conf) and is in turn limited by the kernel’s fs.file-max:

# sysctl fs.file-max
fs.file-max = 9883453