New answers tagged performance-tuning
The worker_processes directive determines how many child processes / forks nginx will spawn from your master process. 24 processes would only make sense if you have 24 CPU cores (or at least 24 virtual CPU cores in case of Hyper Threading (HT) technology, still 12 cores though). CPU contention Definitely, yes and this is going to be your greatest ...
This boils down to file system and procfs tuning. What you explain as 'high' load is situation where other normal processes on system are starved from reads and they forced to wait. Situation is characterized by high share of CPU wait time (check top %wa) many processes in D state (uninterruptible sleep due to waiting for reads from disk) Using noop ...
It makes no sense to try to keep the load low at all costs. What is important is that your process steps back if something more important needs to make use of the resources offered by your system. ionice and nice / renice can be used to reduce the priority so that it only runs when the system is otherwise idle.
Separate your application and display logic (front) from your data access logic and storage (back). The database is going to generate a lot of IO activity, and as such will slow down other things inside the same server. Add RAM. no, seriously, add RAM. Accessing data stored in memory is faster than accessing data stored inside a flash-drive, which is ...
there is very little tuning you have to do for nginx. All the OS/nginx tuning you can do might get your 5-10% more requests per second. Seems to me you are more memory bound then anything. Your best bet is to remove the php-fpm processes from your webserver and create app servers where nginx sends traffic to. ---> internet -> nginx -> many app ...
Congratulations, you've managed to use nearly all of your swap space. The first obvious problem here is that you went very deep into swap. This is probably what's causing the system to thrash so hard (lots of time spent in system, I/O wait and software interrupts). First thing to do is to reduce the number of Apache processes that are running. You don't ...
Are you running your benchmark tool from multiple machines or from a single one ? It seems you are running from a single one and so the local port range is the culprit.
Before anything, based on the screenshot you have posted with htop output, it seems you have 512MB of RAM on a site running WordPress? I have never seen WordPress happy on servers less than 1GB of RAM. Maybe if you are running a test or development site, 512MB is adequate, but for a production site you need 1GB of RAM. That is the root of your problem. That ...
First install these plugins: super cache (htaccess mode), wpbase, widget cache. Wordpress is known for having these issues. IF that doesn't help, it might be a memory leak on one of your themes (especially if mobile view is enabled). Post your access and error logs. I strongly recommend working with nginx instead of apache.
Top 50 recent answers are included