Como ajustar um servidor Linux, executar o Apache, PHP e MySQL preencheria pelo menos quatro grandes livros - e não há solução mágica.
No entanto, na minha experiência, a maioria dos problemas de desempenho em pilhas LAMP são consultas de banco de dados mal escritas. Você descartou isso como uma possível contribuição para o que você percebe como um problema de desempenho - eu recomendo que você volte e dê uma boa olhada nisso.
Depois de ter resolvido o banco de dados, as outras coisas a verificar são que você está compactando todos os html, javascript e css (mod_gzip) e o PHP gerado em HTML (buffer de saída). Certifique-se de que você tenha um cache opcode em execução (como o APC). E certifique-se de estar atendendo todo o seu conteúdo estático com informações de cache sensatas.
As métricas do sistema são boas para dizer como o desempenho de um sistema é restrito - NÃO é o que o desempenho realmente é. Comece a gravar% D nos seus logs do Apache e analise os resultados para descobrir como o seu sistema realmente está se saindo . Priorize os URLs com os totais mais altos para otimização.
Os detalhes que você forneceu do seu sistema são muito contextuais - supondo que você esteja configurado corretamente, eles sugerem que o uso da CPU é principalmente baixo para o mysql - mas se a configuração do servidor web está errado, então o oposto pode ser o caso.
Teria sido útil se você tivesse fornecido a configuração do apache (menos os comentários).
I turned on the log for slow queries, the only queries there are all queries that are executed when the server's CPU is over 90%
Parece que você definiu um limite muito alto. Tente definir o limite como 0 e escreva um analisador para remover os parâmetros das consultas para identificar quais realmente são lentos. Ou apenas encontre um já escrito .