A ferramenta Bonnie++ é uma ótima opção de BenchMark de disco, que oferece varias opções e condições variadas para realizar os testes de desempenho da unidade de disco. Esta ferramenta, oferece uma interface em linha de comando, tornando assim agradável a realização de testes de desempenho em servidores remotos. Para instalar, utilize o repositório preferido de sua distro Linux, ou de uma olhada na pagina refenciada no fim do post.
Bom, vamos a uma abordagem objetiva desta ferramenta… =DAs opções mais funcionais/usuais do bonnie++ (para as situações gerais) são:
-d <diretório>
Especificar o diretório onde será realizado o teste de desempenho. Este é um bom recurso, pois possibilita que o teste seja realizado não somente em unidades de disco em específico, abrindo um leque de opções de testes somente pelo fato de poder especificar o diretório onde os arquivos usados para o BENCHMARK serão escritos. Isso possibilitaria por exemplo, testar o desempenho de uma unidade mapeada na rede, via SAMBA ou NFS.
-s <valor>
Especificar o tamanho dos arquivos que serão escritos para o BENCHMARK. Este parâmetro permite dimensionar de forma mais específica o “poder” de benchmark. Com esta opção podemos moldar o teste de desempenho de acordo com a necessidade, como desempenho do filesystem para escrita de arquivos pequenos, médios ou de larga escala. A unidade padrão para o tamanho deste arquivos é em Mb.
-r <valor>
Este parâmetro especifica quanto de memória RAM será utilizada para o teste de BENCHMARK. Dependendo dos demais parâmetros a serem utilizados, esta opção faz toda a diferença. Por exemplo, sempre que realizarmos um teste sem passar o parâmetro -r <valor> o programa bonnie++ devolve uma mensagem informando que para um teste melhor, deve ser informado o dobro da quantidade de memória RAM para o tamanho de arquivo (opção -s). Isso faz com que os testes com arquivos menores que sua quantidade de RAM seja inviável. Para contornar isso, devemos sempre passar a opção -r com um valor que seja a metade do tamanho do arquivo a ser utilizado, ou ainda passar o valor 0 para desativar esta checagem. Abaixo segue alguns exemplos:
– Teste com um arquivo de 1000Mb em um sistema com 2Gb de ram sem o parâmetro -r:
[root@localhost /]# bonnie++ -d /tmp/ -s 1000 -n 1 -x 1 -u cialinux
File size should be double RAM for good results, RAM is 1924M.
Neste podemos observar que o bonnie++ informa que o tamanho do arquivo deve ser o dobro da RAM para um bom resultado.
– Teste com um arquivo de 1000Mb em um sistema de 2Gb de ram com o parâmetro -r:
[root@localhost /]# bonnie++ -d /tmp/ -s 1000 -r 500 -n 1 -x 1 -u cialinux
Neste passamos para o bonnie++ que o sistema possui somente 500Mb de ram, sendo assim a metade do arquivo a ser escrito. Outra forma é passar o valor 0 para o parâmetro -r, para esta checagem ser desativada.
-n <valor>
Este parâmetro determina o número de arquivos a serem escritos durante o teste. Este parâmetro é muito útil para simular a escrita de vário arquivos no mesmo filesystem, e se bem explorado, da uma margem mais exata do uso real da unidade de disco.
-m <NOME>
Este parâmetro serve para identificar o teste realizado. Geralmente é indicado passar como valor o HOST da máquina que está sendo feito o BENCHMARK, para melhor leitura dos resultados, lembrando que este parâmetro não é obrigatório.
-x <valor>
Este parâmetro serve para determinar quantas vezes o teste será realizado seguidamente. Este parâmetro é muito útil para tirar uma média de desempenho em comparação com múltiplos testes.
-u <usuário>
Este parâmetro deve ser utilizado caso o teste seja realizado como root. Deve ser passado como valor do parâmetro um usuário válido do S.O a ser testado.
Saída dos resultados
O bonnie++ por padrão possui uma saída dos valores avaliados no formato CSV (valores separados por vírgula). Este resultado é realmente incomodo de se interpretar. Os desenvolvedores do bonnie++ disponibilizam duas ferramentas para tratar melhor a saída dos testes.
* bon_csv2html : Converte a saída padrão para um arquivo HTML. Este método é o melhor e mais legível.
* bon_csv2txt : Converte a saída padrão para o formato TXT.
A utilização de qualquer um destes métodos é simples, bastando somente concatenar a saída do bonnie++ com a ferramenta desejada. Segue um exemplo de como realizar um BENCHMARK com a saída para um arquivo html.
[root@localhost /]# bonnie++ -d /tmp -s 500 -r 250 -n 2 -m CIALINUX -x 3 -u cialinux | bon_csv2html > /tmp/RESULTADO.html
Este exemplo, realizará três testes com dois arquivos de 500Mb para cada teste. Ao concluir o bonnie++ gera o arquivo /tmp/RESULTADO.html que pode ser visualizado em qualquer navegador web. Veja como é mostrado o resultado no arquivo HTML:
Em resumo, a utilização do bonnie++ é muito indicada para testes em que necessitamos resultados mais precisos, e que explore realmente os recursos de nossos dispositivos de armazenamento.
Por: Franklin Moretti
referências: man bonnie++
http://www.coker.com.au/bonnie++/