Benchmark, benchmark, benchmark. Essa é a única solução. Há um milhão de coisas que podem tornar um site lento. Aqui está o que eu faria:
- Carregue o Firefox com o Firebug. Verifique o painel líquido quanto aos tempos de carregamento de sua solicitação principal. Se houver muito tempo para "conexão", você pode ter problemas de rede ou largura de banda, ou o Apache não pode lidar com muitas solicitações ao mesmo tempo. Se houver um longo tempo de "espera" ou "transferência", seus scripts PHP podem ser os culpados. Eles demoram muito para renderizar a página.
- Ao lidar com o PHP, o primeiro suspeito é geralmente o seu (Meu) servidor SQL. Se você usa uma biblioteca SQL central, não deve ser muito difícil fazer benchmark de suas consultas. Acompanhe quantas consultas sua página precisa e quanto tempo essas consultas demoram. Compare isso com o tempo total de renderização da página. Se você tiver um aplicativo antigo que use funções comuns de
mysql(i)_
em todo o lugar, salte para baixo dois bullits. - Se o problema é com o MySQL, então o primeiro suspeito é geralmente índices apropriados. Execute um EXPLAIN em todas as suas consultas e veja se os índices são usados. Definir índices apropriados. Re-benchmark. AE / S também é uma causa comum de lentidão do MySQL (use um cache de consulta maior, emita menos consultas (cache de aplicativos), ajuste suas configurações do MySQL ou simplesmente divida o servidor da Web e o SQL Server.
- Se o problema for o próprio PHP, carregue o xdebug e execute a sua página através do profiler (certifique-se apenas de sua solicitação ou você pode facilmente matar seu servidor). Carregue o despejo no KCacheGrind e descubra onde seu aplicativo passa o tempo todo. Refatorar.
Isso é exatamente o que eu faria. Cada passo depende muito dos resultados que você obteve na etapa anterior. Não há conselhos genéricos que possamos dar a você. Apenas faça benchmark, benchmark, benchmark e refatorie seu código e configuração de servidor de acordo.