Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Práticas recomendadas para otimizar sites LAMP para velocidade?


Aqui estão alguns itens pessoais que sempre configuro em meus aplicativos LAMP.

  • Instale o mod_deflate para o apache e não use os manipuladores gzip do PHP. O mod_deflate permitirá que você comprima conteúdo estático, como javascript/css/html estático, assim como a saída dinâmica usual do PHP, e é uma coisa a menos que você precisa se preocupar em seu código.

  • Tenha cuidado com arquivos .htaccess! Habilitar arquivos .htaccess para diretórios em seu aplicativo significa que o Apache tem que varrer o sistema de arquivos constantemente, procurando por diretórios .htaccess. É muito melhor colocar as diretivas dentro da configuração principal ou de uma configuração vhost, onde elas são carregadas uma vez. Sempre que você pode se livrar de um arquivo de acesso em nível de diretório movendo-o para um arquivo de configuração principal, você economiza tempo de acesso ao disco.

  • Prepare a camada de banco de dados do seu aplicativo para utilizar um gerenciador de conexões de algum tipo (eu uso um Singleton para a maioria dos aplicativos). Não é muito difícil de fazer, e reduzir o número de conexões de banco de dados que seu aplicativo abre economiza recursos.

  • Se você acha que seu aplicativo verá uma carga significativa, o memcached pode fazer milagres. Tenha isso em mente enquanto você escreve seu código... talvez um dia, em vez de criar objetos em tempo real, você os obtenha do memcached. Um pouco de previsão tornará a implementação indolor.

  • Depois que seu aplicativo estiver em execução, defina o tempo de consulta lenta do MySQL para um número pequeno e monitore o log de consulta lenta diligentemente. Isso mostrará a origem de suas consultas de problemas e permitirá que você otimize suas consultas e índices antes que se tornem um problema.

  • Para ajustes sérios de desempenho, você vai querer compilar o PHP a partir da fonte. Instalar a partir de um pacote instala um monte de bibliotecas que você pode nunca usar. Como os ambientes PHP são carregados em cada instância de um encadeamento do Apache, mesmo uma sobrecarga de memória de 5 MB de bibliotecas extras rapidamente se torna 250 MB de memória perdida quando não existem 50 encadeamentos do Apache. Eu mantenho uma lista de minha linha padrão ./configure que eu uso ao construir PHP aqui , e acho que combina com a maioria das minhas aplicações. A desvantagem é que se você acabar precisando de uma biblioteca, você tem que recompilar o PHP para obtê-la. Analise seu código e teste-o em um ambiente de desenvolvimento para garantir que você tenha tudo o que precisa.

  • Minimize seu Javascript.

  • Esteja preparado para mover conteúdo estático, como imagens e vídeos, para um servidor web não dinâmico. Escreva seu código para que quaisquer URLs de imagens e vídeos sejam facilmente configurados para apontar para outro servidor no futuro. Um servidor web otimizado para conteúdo estático pode facilmente servir dezenas ou até centenas de vezes mais rápido que um servidor de conteúdo dinâmico.

Isso é o que eu posso pensar de cabeça. Pesquisando as melhores práticas do PHP, você encontrará muitas dicas sobre como escrever código mais rápido/melhor também (como:echo é mais rápido que print ).