I have a VPS with 4 vCPUs, 8 GB RAM, running Ubuntu 22.04, Nginx, PHP-FPM (v8.1), and MariaDB 10.6. It hosts around 10 WordPress sites.
During peak traffic, I notice CPU usage spikes to 95–100%, and the sites start slowing down.
Things I’ve already tried:
Enabled Nginx microcaching
Increased PHP-FPM pm.max_children to 20
Configured MariaDB with basic tuning (innodb_buffer_pool_size, query_cache_size)
But the performance issue still persists.
Question:
What server-level optimizations (Nginx, PHP-FPM, or MySQL/MariaDB tuning) are recommended to reduce CPU usage in this scenario? I’m looking for specific configuration changes or diagnostic steps, not general “use caching/CDN” advice.
What I tried:
Increased pm.max_children in PHP-FPM to 20 expecting it to handle more requests in parallel.
Enabled Nginx microcaching expecting reduced PHP load.
Tuned MariaDB (innodb_buffer_pool_size, query_cache_size) expecting queries to run faster.
What I expected:
CPU usage should drop significantly.
WordPress sites should respond faster under load.
What actually happened:
CPU usage still spikes to 95–100% during peak traffic.
Response times are only slightly better but still too slow when concurrent users increase.