você está aqui: Home  → Arquivo de Mensagens

Efetuando stress-test em servidores Unix.

Colaboração: Rodrigo Pace de Barros

Data de Publicação: 10 de Julho de 2006

Stress é uma ferramenta que pode ser configurada para realizar um testes de stress de CPU, I/O, memória e disco em sistemas *nix. Sua licença é GPL.

Esta ferramenta foi desenvolvida para vários sistemas operacionais, como dito acima. Assim, existem compilações específicas para determinados sistemas e, também, existe o source code disponível para compilação local.

O download pode ser feito na seguinte URL:

http://weather.ou.edu/~apw/projects/stress/#Download

IMPORTANTE: Antes de realizar os testes, tenha no mínimo dois terminais abertos no servidor sobre teste. Assim, caso a ferramenta consuma muitos recursos da máquina, você terá a oportunidade de matar seu processo sem ter que esperar que o teste acabe.

Abaixo seguem alguns exemplos práticos de como testar o seu servidor com esta ferramenta:

1. Testando a CPU do servidor

  # stress --cpu 1k

Explicação: Este comando faz um fork de 1024 processos a serem processados pela CPU.

  # stress --cpu 12 --timeout 10s

Explicação: Este comando faz um fork de 12 processos a serem processados pela CPU e o tempo do teste deverá ser de 10 segundos.

2. Testando a Memória do servidor

  # stress --vm 2

Explicação: Faz um fork de 2 processos que alocarão memória do servidor

  # stress --vm 2 --vm-bytes 128M

Explicação: Faz um fork de 2 processos que alocarão 128M cada durante o processo de stress test.

  # stress --vm 2 --vm-bytes 128M --vm-hang --timeout 1h

Explicação: Durante o teste serão alocados 256Mb de memória do servidor que somente serão liberados ao término do processo (após uma hora, segundo o parâmetro "--timeout 1h")

3. Testando o I/O do servidor

  # stress --io 4

Explicação: Durante o teste, 4 processos farão múltiplas chamadas da função sync() (chamada de sistema que faz um flush do que existe na memória para o disco).

  # stress  --io 4 --timeout 10s

Explicação: Faz exatamente o que o teste acima faz, porém, durante apenas 10 segundos.

4. Testando o Disco do servidor

  # stress --hdd 6

Explicação: Faz com que 6 processos utilizem a chamada de sistema write(), responsável pela escrita em disco no sistema operacional.

  # stress --hdd 10 --hdd-bytes 2g --timeout 50s

Explicação: Faz com que 10 processos utilizem a chamada de sistema write() para escrever arquivos de 2Gb de dados em disco, durante 50 segundos. O padrão para o parâmetro --hdd-bytes é de arquivos de 1Gb.

  # stress --hdd 3 --hdd-noclean

Explicação: Faz com que 3 processos criem arquivos de 1Gb (default do stress) no ambiente e não façam o unlink destes processos. Para maiores detalhes a respeito do unlink, por favor, utilize "man unlink" em ambientes Unix.

5. Utilizando vários comandos agregados


O utilitário stress permite o uso de vários tipos de teste em uma única linha de comando. Segue um exemplo:

  # stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s

6. Referência

Em http://weather.ou.edu/~apw/projects/stress/ podem ser encontrados mais detalhes a respeito do stress e suas formas de uso.



Veja a relação completa dos artigos de Rodrigo Pace de Barros

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script