Puede ser que la memoria del servidor esté a tope y este usando SWAP y haga que la CPU se sobre carge. Para liberar esa memoria hay que ejecutar:
sync ; echo 3 > /proc/sys/vm/drop_caches
Otra posibilidad es que exista un cuello de botella en MySQL. Prueba con SHOW PROCESSLIST y copia los resultados.
Tercero, usa «server-status» para ver qué procesos hay activos (peticiones HTTP) en tiempo real, más información en apache.org
Una vez instalado, podemos usar la configuración descrita más abajo. En la línea Allow podemos especificar desde que IPs (o rango de IPs) permitimos que se vea el server-status.
<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 1.2.3.4 5.6.7.8 </Location>
A continuación ya podemos acceder con el navegador al servidor mediante una URL similar a: http://servidor-ejemplo.com/server-status