Se no servidor que você administra há uma alta carga na CPU sem uso extra da RAM então o problema pode estar relacionado com o banco de dados, em nosso caso o MySQL.
É muito difícil encontrar a solução para a maioria dos problemas de um servidor, e neste caso é ainda mais pois se isto estiver ocorrendo você terá que rastrear as queries (chamadas ao banco de dados), descobrir do qual site elas têm origem e tentar encontrar qual o plugin ou função que está causando o problema.
Acesse o servidor onde está o banco de dados como root e digite o comando:
> mysqladmin -u root -p -i 1 processlist
* Será solicitada a senha admin do MySQL
Este comando irá mostrar em um intervalo de 1 segundo todas as queries feitas ao DB. Preste atenção principalmente àquelas com maior tempo de execução. Se houverem queries demoradas com certeza há algo errado com o seu website.
A solução para queries em sleep mode que demoram muito tempo para desaparecer está na configuração do MySQL. Edite o arquivo /etc/mysql/my.cnf e dentro do bloco [mysqld] adicione as seguintes linhas:
interactive_timeout=120 wait_timeout=120
Em seguida reinicie o MySQL. Com isso as slow queries serão excluídas se não forem executadas em até 120 segundos.
Na versão atual do MySQL o timeout padrão é muito alto e causa problemas como por exemplo o alto uso da CPU por scripts intermináveis.
Para exibir o valor atual das variáveis acesse o MySQL com o comando:
> mysql -u root -p
*Digite a senha admin do MySQL para acessar o console. Em seguida digite a seguinte query:
> SHOW GLOBAL VARIABLES LIKE “%wait_timeout%”;