hybinet wrote:
This is how you serve lots of visitors with a small server, at least with the typical Apache+mpm_prefork+mod_php setup. (The equations are different with nginx.)
The bigger question is why people still use prefork on a small VPS to begin with. Unless your site has virtually no static files, Apache is basically going to fire up the PHP interpreter for every single request which is a terrible waste of resources. When I switched to PHP FPM and the worker mpm, I haven't looked back.
If you're memory bound, KeepAlive is probably better off but if you run a different mpm, at least then you can use KeepAlive to improve site performance.
nginx is even better in this respect though as hybinet points out, Apache is perfectly capable of running a small site but it needs to be tuned.
I would bet the reason you're seeing those spikes is most likely script kiddies trying to brute force your logins and otherwise hack your WordPress install. I host a few WP sites myself and I get thousands of these attempts per day. WordPress is the most attacked CMS so if you want to host it yourself, you need better tools to fight back. If you can, I'd recommend only allowing access to wp-admin/ by IP address. That'll cut down on the number of attempts tremendously.
nginx is easier to rate limit out of the box so you can more easily block or slow down these requests though so they never hit your backend and flood you server. Its fastcgi_cache is a godsend and if your WP site is mostly static pages anyway, you can really crank up the cache time value. If your site suddenly gets a lot of traffic, you don't have to do a single thing to Apache, since nginx is handling the request out of its static cache.