In high traffic environments it generally make sense to “dedicate” a core to each RX and TX queue you have on the NIC – this way you lower the chances of a single core being overloaded from handling network and thus degrading performance.
And then at same time within nginx, map the individual processes to other cores.
So, let’s say say you have 8 cores and 1 RX and 1 TX queue:
Core 0: RX queue
Core 1: TX queue
Core 2 to 7: nginx processes
You’d then set nginx to 6 workers (if you’re not running other stuff on the box).
Now, in your case with php-fpm in the mix as well, controlling that can be hard ( not sure if you can pin php-fpm processes to cores ) – but for nginx and RX/TX queues, it’s for sure possible.
From: nginx <nginx-bounces@nginx.org> on behalf of Raffael Vogler <raffael.vogler@yieldlove.com>
Reply-To: "nginx@nginx.org" <nginx@nginx.org>
Date: Thursday, 11 January 2018 at 11.55
To: "nginx@nginx.org" <nginx@nginx.org>
Subject: Re: 2 of 16 cores are constantly maxing out - how to balance the load?
Or would it make sense (if possible at all) to assign two or three more cores to networking interrupts?
_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx