CPU, memória, rede e recursos de IO estão subutilizados quando experimentei vários testes de carga do JMeter

2

Estou tentando avaliar o desempenho do meu servidor da Web que tem Linux e Apache. Tentei testar a carga usando o JMeter e, gradualmente, aumentei o número de solicitações e registrei o tempo de resposta, bem como as estatísticas de utilização de recursos. O tempo de resposta aumentou após 40 acessos por minuto, no entanto, a utilização de recursos permaneceu igual! CPU, memória, rede, recursos de E / S foram subutilizados mesmo quando tentei muitas solicitações, resultando em um tempo de resposta lento. Para ser específico, o tempo de resposta foi bom quando o número total de solicitações por minuto estava abaixo de 6000, e quando experimentamos 8000 solicitações por minuto, o tempo de resposta aumentou em 50%.

Info of the server:
Hardware: 1 Core with 2 GB RAM
OS: Ubuntu 12.04 LTS Server Edition

Application stack:
Apache, PHP

Configuração do Apache com número de clientes:

<IfModule mpm_prefork_module>
    StartServers          50
    MinSpareServers       50
    MaxSpareServers      100
    MaxServers           600
    MaxClients           600
    MaxRequestsPerChild   0
</IfModule>

Não estou claro por que esses recursos estão subutilizados. Você poderia, por favor, me ajudar no que devo fazer para usar a utilização de recursos?

Aqui está a parte significativa da configuração do apache:

LockFile ${APACHE_LOCK_DIR}/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 1000
KeepAliveTimeout 5

<IfModule mpm_prefork_module>
    StartServers         50
    MinSpareServers      50
    MaxSpareServers     100
    ServerLimit         600
    MaxClients          600
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_event_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

DefaultType None
HostnameLookups Off

Include mods-enabled/*.load
Include mods-enabled/*.conf
Include httpd.conf
Include ports.conf

Include conf.d/
Include sites-enabled/
    
por user1910258 14.12.2012 / 06:02

2 respostas

1

A primeira coisa é que você deve experimentar URLs diferentes para testar, não apenas uma, que acredito estar tentando.

Além disso, tente aumentar os valores de MaxServers e MaxClients para que você não tenha um gargalo. Você pode verificar o mesmo se estiver atingindo um gargalo para o número de processos usando este comando

 # watch "ps ax | grep -http | wc -l"

Se estiver perto de 600, você precisa aumentar o valor para eles, para que você possa testar ainda mais o teste. Isso também explica o não aumento da carga, porque suas conexões estão esperando o servidor ficar livre das conexões anteriores.

Além disso, vou recomendar a desativação do tempo de manutenção (não tenho certeza se já desativado), para que você possa obter resultados muito reais.

    
por 14.12.2012 / 09:01
0

O desempenho do Apache pode ser limitado pelo número de identificadores e processos de arquivos disponíveis. Este artigo pode ajudar: link

(disclaimer: Eu trabalho com o autor)

    
por 18.12.2012 / 14:36