Amazon EC2 Server em execução muito lenta

2

Eu tenho um servidor c1.medium executando o Ubuntu 12.04 no AWS EC2. Nós o usamos como um servidor de desenvolvimento, hospedando entre 5 e 8 sites do Drupal 7 nele. Recentemente, o servidor tem funcionado muito lentamente e estou me esforçando para descobrir o motivo. Eu pesquisei logs, mas não consigo detectar nada óbvio. Tenho notado sempre que o servidor começa a rastrear / travar - olhando os gráficos do relógio da nuvem no console do EC2, há sempre um pico incomum. Qualquer recomendação sobre como investigar e identificar esses problemas e de onde eles vêm. Anexei a saída de top e um fragmento do meu arquivo apache2.conf.

Tasks: 117 total,   1 running, 113 sleeping,   3 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1733244k total,  1647596k used,    85648k free,     4612k buffers
Swap:   917500k total,   644984k used,   272516k free,    69512k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                
16417 mysql     20   0 1317m 199m 1784 S    0 11.8   3:19.84 mysqld                                                                                                                                                 
18087 www-data  20   0  483m 139m 3132 S    0  8.3   0:11.15 apache2                                                                                                                                                
18019 www-data  20   0  483m 136m 3208 S    0  8.1   0:13.52 apache2                                                                                                                                                
18088 www-data  20   0  477m 131m 2952 S    0  7.8   0:10.31 apache2                                                                                                                                                
17958 www-data  20   0  533m 130m 2948 S    0  7.7   0:16.77 apache2                                                                                                                                                
17959 www-data  20   0  450m 103m 3192 S    0  6.1   2:05.47 apache2                                                                                                                                                
17987 www-data  20   0  443m  97m 3188 S    0  5.8   0:10.76 apache2                                                                                                                                                
17961 www-data  20   0  438m  95m 3180 S    0  5.7   0:13.21 apache2                                                                                                                                                
18089 www-data  20   0  443m  83m 3172 S    0  4.9   0:06.69 apache2                                                                                                                                                
18068 www-data  20   0  412m  68m 3148 S    0  4.0   0:07.99 apache2                                                                                                                                                
18459 www-data  20   0  411m  68m 3204 S    0  4.0   0:01.27 apache2                                                                                                                                                
17960 www-data  20   0  410m  67m 3812 S    0  4.0   0:06.79 apache2                                                                                                                                                
18283 ubuntu    20   0 26720 6908    0 S    0  0.4   0:00.59 bash                                                                                                                                                   
18460 www-data  20   0  350m 2788  804 S    0  0.2   0:00.00 apache2                                                                                                                                                
13391 root      20   0  350m 1700   16 S    0  0.1   0:03.25 apache2                                                                                                                                                
17830 ubuntu    20   0 26768 1468  620 S    0  0.1   0:01.48 bash                                                                                                                                                   
18463 ubuntu    20   0 17332 1288  944 R    0  0.1   0:00.04 top                                                                                                                                                    
 8024 root      20   0 2632m  936    0 S    0  0.1  14:24.58 java                                                                                                                                                   
18134 root      20   0 73352  772    0 S    0  0.0   0:00.06 sshd                                                                                                                                                   
18282 ubuntu    20   0 73352  756    0 S    0  0.0   0:00.03 sshd                                                                                                                                                   
    1 root      20   0 24420  516    0 S    0  0.0   0:13.99 init                                                                                                                                                   
  909 postfix   20   0 27372  348  208 S    0  0.0   0:43.46 qmgr                                                                                                                                                   
  797 root      20   0 15972  320  232 S    0  0.0  25:04.39 irqbalance                                                                                                                                             
  900 root      20   0 25096  272  172 S    0  0.0   1:49.94 master                                                                                                                                                 
  664 syslog    20   0  248m  244    0 S    0  0.0  18:20.90 rsyslogd                                                                                                                                               
16201 ubuntu    20   0 73468  220    0 S    0  0.0   0:00.07 sshd                                                                                                                                                   
16904 ubuntu    20   0 73468  216    0 S    0  0.0   0:00.03 sshd   
Timeout 20
KeepAlive On
MaxKeepAliveRequests 500
KeepAliveTimeout 2
IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      12
    MaxClients           40
    MaxRequestsPerChild  10000
/IfModule>

Completamente novo para tudo isso .. qualquer conselho muito apreciado. Felicidades

    
por williamsowen 28.02.2013 / 17:08

2 respostas

1

Instale atop e execute-o como um daemon que registra em /var/log/atop.log . Então, da próxima vez que você tiver um pico de carga desagradável, poderá executar atop -r /var/log/atop.log e observar o estado da máquina no momento em que aconteceu (use a tecla t para avançar rapidamente pelo registro).

atop é superior a top na utilidade e integridade dos dados que você mostra.

    
por 28.02.2013 / 17:39
0

Seu uso de memória parece alto. Posso ver que você está usando bastante espaço de troca no momento em que coletou essa informação do topo, mas é realmente a quantidade de dados entrando e saindo do swap em vez da quantidade em uso que é o problema. Eu estou supondo que este é o caso.

O seu swap usou a figura mudando de leitura para leitura? Se assim for, isso é quase certamente o seu problema e, em qualquer caso, você se beneficiará com a redução do uso de memória e / ou adição de RAM à sua VM.

também, se a troca de agitação for o seu problema, então quando a sua máquina estiver fazendo alguma coisa, você verá o número de processos aguardando aumento de estado. É "0,0% wa" na sua listagem, mas como o sistema está exibindo 100% de ociosidade, presumo que esteja entre as solicitações da Web que causariam problemas.

Apenas fazendo um cálculo do tipo de envelope, se seus processos do apache atualmente consomem cerca de 5% da sua RAM (e alguns mais), então permitir até 40 deles (MaxClients) é um problema, e usaria cerca de duas vezes muita RAM como você realmente tem.

Para uma pequena máquina de desenvolvimento como a sua, eu fixaria o número de processos do apache em um número pequeno, sem muita movimentação dinâmica, e reciclaria os processos do apache com frequência. Também mantenha o keepalive muito curto para que eles não sejam amarrados por muito tempo.

Timeout 20
KeepAlive On
MaxKeepAliveRequests 500
KeepAliveTimeout 1
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       3
    MaxSpareServers      5
    MaxClients           5
    MaxRequestsPerChild  10
</IfModule>

Se você tiver mais de uma ou duas pessoas usando isso de uma só vez, tente passar a entrega de conteúdo estático para algo com encadeamento único e acenda o uso da memória. Você poderia fornecer conteúdo estático a partir de um peso mais leve, como o nginx, mas seria mais fácil configurar algo como o squid como um cache de proxy de front-end, com talvez 50 a 100 MB de cache.

Verifique se você está usando o cache APC para armazenar em cache o PHP compilado. Com o APC você vai querer aumentar a quantidade de espaço atribuído ao cache, e isso reduzirá bastante o uso de RAM, já que o PHP compilado estará em memória compartilhada, em vez de ser compilado separadamente em cada processo do apache em cada pedido.

    
por 16.10.2014 / 21:07