apache consumindo muita memória

4

Eu uso a instância grande do Amazon EC2 (memória de 7,5 GB) para o meu servidor http. Recentemente notei que meus comandos ssh estavam ficando lentos, então verifiquei o uso da memória.

free -t -m
             total       used       free     shared    buffers     cached
Mem:          7455       7373         82          0       1404         39
-/+ buffers/cache:       5929       1526
Swap:            0          0          0
Total:        7455       7373         82

Então, algo está consumindo muita memória. Eu duas vezes por dia reinicio o httpd para liberar a memória e cerca de 12 horas ou mais fica cheio novamente. A utilização média diária da CPU está abaixo de 20%.

Aqui está o top comannd classificado por uso de memória.

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                        
31492 apache      20   0 98.6m 4444  460 S  1.0  0.1   0:04.38 sshd                                                                                            
31493 apache      20   0  168m  12m  608 D  1.0  0.2   0:09.09 rsync                                                                                           
 3288 apache      20   0 1988m 1.5g 1468 S  0.7 20.0   4:13.87 httpd                                                                                           
16935 apache      20   0  782m 246m 1532 S  0.7  3.3   0:38.71 httpd                                                                                           
31505 apache      20   0  263m  14m  412 S  0.7  0.2   0:01.27 rsync                                                                                           
    3 root      20   0     0    0    0 S  0.3  0.0   7:35.26 ksoftirqd/0                                                                                     
  217 root      20   0     0    0    0 S  0.3  0.0  10:38.66 kswapd0                                                                                         
 3844 apache      20   0 1676m 1.1g 1628 S  0.3 14.8   3:20.79 httpd                                                                                           
 4280 apache      20   0 1275m 847m 1376 S  0.3 11.4   2:36.90 httpd                                                                                           
 5323 apache      20   0  946m 616m 1304 S  0.3  8.3   1:53.98 httpd                                                                                           
 6580 apache      20   0 1038m 504m 1584 S  0.3  6.8   1:30.28 httpd                                                                                           
 8394 apache      20   0  974m 402m 1584 S  0.3  5.4   1:10.86 httpd                                                                                           
22210 apache      20   0  647m 191m 1532 S  0.3  2.6   0:26.09 httpd                                                                                           
26899 apache      20   0  717m 139m 1480 S  0.3  1.9   0:14.65 httpd                                                                                           
31622 root      20   0 15060 1176  888 R  0.3  0.0   0:00.12 top                                                                                             
    1 root      20   0 19380  296    0 S  0.0  0.0   0:00.46 init                                                                                            
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                                                        
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kworker/0:0    
    
por Maca 06.04.2012 / 06:35

2 respostas

3

Um dos scripts que o Apache executa tem um vazamento de memória. Você precisa rastrear o script. Você provavelmente vai querer usar strace .

Nesse meio tempo, você pode programar /etc/init.d/httpd graceful para ser executado em um intervalo para liberar a memória.

    
por 06.04.2012 / 06:43
0

Você pode querer examinar suas variáveis PHP. Existem vários scripts de ajuste que você pode executar para obter uma visão mais detalhada do desempenho do Apache. Uma que eu pessoalmente recomendo é o ApacheBuddy ( link ) strace também é um bom recurso se você for versado na leitura da saída, você pode tentar o seguinte comando para iniciantes:

# ps auxw | grep sbin/apache | awk '{print"-p " $2}' | xargs strace
    
por 06.04.2012 / 08:28