Dicas de desempenho do servidor LAMP [closed]

11

Quais dicas de desempenho podem ser oferecidas a alguém que esteja executando um servidor LAMP?

No caso em que algo é específico da Distribuição, estou direcionando para o Debian.

    
por Unkwntech 24.05.2009 / 10:14

3 respostas

26

Isso realmente depende da sua carga de trabalho.

  • para a parte L

    • consiga muita memória,
    • se você puder ultrapassar 4 GB, vá para 64 bits.
    • para partições onde seu conteúdo, logs e dados do MySQL são opções de montagem: noatime, nodiratime.
    • use drives físicos / conjuntos de raids separados, o ideal é manter os dados, logs e conteúdo do SQL que você veicula - cada um em um eixo separado.
  • para a parte A da sua pilha - bem, talvez você queira substituí-la completamente por nginx ou lighthttpd , ou talvez apenas deixe o Apache para conteúdo dinâmico e tenha um servidor separado (como esses dois ou mathopd ) para conteúdo estático. Dê uma olhada aqui para mais opções. Se você for executar o Apache e outro servidor na mesma caixa, um segundo endereço IP será útil. Para diminuir a latência do usuário final, use http / 1.1 com keep-alive. Considere usar um CDN para conteúdo estático.

  • para a parte M da sua lâmpada - dê uma olhada em mysqlperformanceblog . do alto da minha cabeça:

    • faça log de consultas lentas,
    • dê memória suficiente,
    • considere o uso do innodb.
    • se você tem muito texto para pesquisar - use sphinx e tenha um trabalho em lote que reconstrua o índice.
    • considere a eliminação de consultas que duram mais que XYZ segundos. É melhor incomodar 1% dos usuários do que derrubar todo o site no horário de pico. Mas isso realmente depende se você processar transações em dinheiro ou mostrar fotos legais.
    • use memcached se puder, para armazenar em cache o resultado de consultas SQL mais caras. Lembre-se de invalidar o cache quando você alterar o conteúdo do SQL. Por outro lado, eu tenho poucos sites onde todos os dados se encaixam confortavelmente na memória e, para isso, o MySQL é muito rápido e não há necessidade de cache adicional.
  • para P

    • definir o tempo limite de execução dos scripts.
    • considere o uso de algum acelerador de PHP / cache de opcode. Fiquei bastante satisfeito com o xcache , mas não o uso agora.
    • se você tiver processamento intensivo da CPU - armazene os resultados em cache e armazene-os em SQL ou memcached

Não é realmente uma dica de desempenho, mas faça backups externos. Realmente.

    
por 24.05.2009 / 11:20
3

Eu realmente sugiro separar o MySQL e o Apache / PHP em duas máquinas diferentes.

Por exemplo, eu tinha uma máquina (C2D E6600) que sempre aumentava para 2.0 e acima da média de carga. Eu coloquei o MySQL em uma segunda máquina (P4C 3Ghz) e depois disso as duas médias de carga não ficaram acima de 0.2-0.3. Então eu fui de um site muito lento para um site rápido com dois servidores com muita margem de desempenho.

    
por 24.05.2009 / 15:23
1

Para a parte P, você pode considerar o armazenamento em cache do opcode com, por exemplo, APC . Pode-se também considerar o mod_fastcgi com o php em vez do padrão mod_php.

    
por 24.05.2009 / 12:24

Tags