Chegou hoje na empresa no qual trabalho uma placa mãe que de cara eu tinha falado que tinham tomado cano, porque cade o processador. Aí a anta aqui não tinha lido sobre a era da família VIA, que agora tá correndo em carreira solo. Assim para que conheçam um pouco a placa é uma PC2500E.
Fui delegado em fazer os testes para ver se o produto que estão desenvolvendo rodaria neste tipo de computador e lá vou eu pro meu fundo do baú de comandos no debian e lembrei do stress.
Stress é uma ferramenta que pode ser configurada para realizar um testes de stress de CPU, I/O, memória e disco em sistemas da família unix. E 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.
A instalação no debian é bem simples:
<code>aptitude install stress </code>
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. Caso esteja remoto como foi o meu caso use o screen.
Abaixo seguem alguns exemplos práticos de como testar o seu servidor com esta ferramenta:
<code> # stress --cpu 1k </code>
Este comando faz um fork de 1024 processos a serem processados pela CPU.
<code> # stress --cpu 12 --timeout 10s </code>
Este comando faz um fork de 12 processos a serem processados pela CPU e o tempo do teste deverá ser de 10 segundos.
<code> # stress --vm 2 </code>
Faz um fork de 2 processos que alocarão memória do servidor
<code> # stress --vm 2 --vm-bytes 128M </code>
Faz um fork de 2 processos que alocarão 128M cada durante o processo de stress test.
<code> # stress --vm 2 --vm-bytes 128M --vm-hang --timeout 1h </code>
Durante o teste serão alocados 128Mb 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”)
<code> # stress --io 4 </code>
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).
<code> # stress --io 4 --timeout 10s </code>
Faz exatamente o que o teste acima faz, porém, durante apenas 10 segundos.
<code> # stress --hdd 6 </code>
Faz com que 6 processos utilizem a chamada de sistema write(), responsável pela escrita em disco no sistema operacional.
<code> # stress --hdd 10 --hdd-bytes 2g --timeout 50s </code>
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.
<code> # stress --hdd 3 --hdd-noclean </code>
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.
Referência
Em http://weather.ou.edu/~apw/projects/stress/ podem ser encontrados mais detalhes a respeito do stress e suas formas de uso.