I have a program which runs multi-threading but it doesn't use all of cpu's cores , how do i configure Nginx file for this?

Posted November 27, 2017 3.7k views

or is there another way to do this ?
Is there anyone can help on this problem?

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

Without more information about how you’ve configured Nginx and the program running behind it, it’s hard to give you an exact answer to your problem. The first place I would look is the value of the worker_processes directive in your Nginx configuration (on Ubuntu it would be in /etc/nginx/nginx.conf). In order to ensure that Nginx will make use of all of the available CPU cores, the value should match the number of cores available. Newer version of Nginx (including the version in Ubuntu 16.04 and above) support auto as a value. This will attempt to automatically dectect the number of cores available.

For more information, see:

by Alex Kavon
Nginx is a fast and lightweight alternative to the sometimes overbearing Apache 2. However, Nginx just like any kind of server or software must be tuned to help attain optimal performance. Here's how to optimize Nginx configuration.
  • Do DO VPSes have multi-threading to begin with? says this about Shared CPUs:

    With shared CPU Droplets, the hyperthread allocated to the Droplet may be shared between multiple other Droplets. When a shared CPU Droplet experiences heavier load, the hypervisor dynamically allocates more hyperthread(s) to it.

    However, the amount of CPU cycles available for the hypervisor to allocate depends on the workload of the other Droplets sharing that host. If these neighboring Droplets have high load, a Droplet could receive fractions of hyperthreads instead of dedicated access to the underlying physical processors.