Primero, diría que probablemente desee desactivar las conexiones persistentes, ya que casi siempre hacen más daño que bien.
En segundo lugar, diría que desea verificar sus usuarios de MySQL, solo para asegurarse de que nadie pueda conectarse desde un servidor remoto. Esto también es una cosa importante de seguridad para verificar.
En tercer lugar, diría que desea activar el registro de consultas lentas de MySQL para controlar cualquier consulta que tarde mucho tiempo, y usarla para asegurarse de que no tiene ninguna consulta bloqueando tablas de claves durante demasiado tiempo.
Algunas otras cosas que puede verificar serían ejecutar la siguiente consulta mientras la carga de la CPU es alta:
SHOW PROCESSLIST;
Esto le mostrará cualquier consulta que se esté ejecutando actualmente o en la cola para ejecutarse, qué es la consulta y qué está haciendo (este comando truncará la consulta si es demasiado larga, puede usar SHOW FULL PROCESSLIST para ver el texto completo de la consulta) .
Usted también querrá mantener un ojo en cosas como el tamaño de buffer, caché de la tabla , caché de consultas y innodb_buffer_pool_size (si está utilizando tablas InnoDB) ya que todas estas asignaciones de memoria puede tener un efecto en el rendimiento de consulta que puede causar que MySQL comer CPU.
También es probable que desee leer lo siguiente ya que contienen buena información.
También es una muy buena idea usar un perfilador. Algo que puede activar cuando lo desee que le mostrará qué consultas está ejecutando su aplicación, si hay consultas duplicadas, cuánto tiempo están tardando, etc., etc. Un ejemplo de algo como esto es en lo que he estado trabajando llamado PHP Profiler pero hay muchos por ahí. Si está utilizando un software como Drupal, Joomla o Wordpress, querrá preguntar dentro de la comunidad, ya que probablemente hay módulos disponibles para ellos que le permiten obtener esta información sin necesidad de integrar nada manualmente.