O aconselhamento sobre a resolução de problemas de desempenho do servidor Web é necessário

1

Estou alugando um servidor virtual baseado no CentOS, no qual tenho cerca de 5 sites ativos em execução. Vários meses atrás, notei uma degradação significativa no desempenho de como meus sites estão sendo executados.

O primeiro sintoma foi muitos (~ 300) processos apache em execução após o servidor HTTP parar de responder. O problema desapareceu após a reinicialização, mas apareceu novamente esporadicamente em um dia ou em uma semana e assim por diante. Eu joguei com as opções httpd.config, mas não consegui me livrar desse problema e a única solução que consegui encontrar foi agendar a reinicialização do servidor a cada 1 hora. A reinicialização foi muito rápida, então temporária, resolveu o problema.

No entanto, alguns meses atrás, comecei a observar outro problema com o desempenho do servidor - periodicamente, os sites respondem muito lentamente.

Preciso de algum conselho ou ajuda para descobrir a origem do problema, pois não tenho certeza se entendi por enquanto:

Parece que é memória suficiente, aqui está a saída do topo: Mem: 524288k total, 299252k usado, 225036k livre, 0k buffers

É espaço em disco suficiente (de "vm -h"):

Filesystem            Size  Used Avail Use% Mounted on
vzfs                   40G   28G   13G  70% /
none                  3.9G  4.0K  3.9G   1% /dev

E aqui estão as informações de tempo de execução sobre o uso de recursos de "vmstat -S M 2 100":

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0    220      0      0    0    0     8   111    0    1  6  4 90  0  0
 0  0      0    220      0      0    0    0     0     0    0  272  0  0 100  0  0
 0  0      0    220      0      0    0    0     0     0    0  176  0  0 100  0  0
 0  0      0    220      0      0    0    0     0     0    0  132  0  0 100  0  0
 0  0      0    220      0      0    0    0     0  1950    0  330  0  0 100  0  0
 2  0      0    220      0      0    0    0     0     4    0 1854 21 19 60  0  0
 2  0      0    210      0      0    0    0     0     4    0 1958 73 23  4  0  0
 2  0      0    199      0      0    0    0     0     4    0  829 41 40 19  0  0
 1  0      0    207      0      0    0    0     0    26    0 1212 47 17 36  0  0
 1  0      0    206      0      0    0    0     0     4    0 1405 50  4 45  0  0
 0  0      0    209      0      0    0    0     4   140    0 1251 34  5 60  0  0
 0  0      0    208      0      0    0    0     0     0    0  213  1  0 99  0  0
 0  0      0    208      0      0    0    0     0     0    0  353  0  0 100  0  0
 0  0      0    208      0      0    0    0     0     6    0  317  0  0 100  0  0
 0  0      0    206      0      0    0    0     0     0    0  299  0  0 100  0  0
 0  0      0    214      0      0    0    0    12   114    0  336  0  1 99  0  0

A propósito, as linhas com alta CS (valores de mudança de contexto) correspondem a momentos em que atualizei algumas páginas do site.

Qualquer conselho é muito apreciado.

    
por Alexey 24.01.2014 / 12:30

1 resposta

0

Geralmente, acho que quando o apache é definido para que seja permitido gerar mais filhos do que você pode manipular, ele congela quando atinge seu limite de sistema. Não é muito bom liberar recursos quando está entupido. Então eu sugiro que você diminua seu filho máximo (em muito) para o apache, para começar. Veja quanto de memória 1 criança normalmente usa. Em seguida, divida seu max avl ram com o quanto uma criança usa e você pode usar esse resultado como ponto de partida para ajustar a quantidade ideal de filhos.

Minha resposta pode ser tendenciosa, mas eu não acho que o apache seja muito bom em ser um servidor web ... É muito consumista de recursos do que precisa ser e, portanto, especialmente faz uma má escolha para pequenos ambientes como o VPS você está correndo. Tente uma alternativa como nginx (com php-fpm se você estiver usando php por exemplo), ou verniz, etc. Estes não são 1 a 1 substituição do apache, mas eles são servidores web que eu acho que são muito mais eficientes e menos propenso a congelar devido a problemas de recursos.

Além disso, ao postar problemas como esse, recomendo que você publique estatísticas de itens como top , pois eles fornecem uma imagem mais completa, apesar de geral, durante seu horário de pico / incômodo.

    
por 24.01.2014 / 14:05