Teste a ferramenta learning-113-vdbench para testar o desempenho de leitura e gravação de disco do servidor

Prefácio

   No contexto da era do big data, o armazenamento de dados se tornou o ponto problemático a ser resolvido. Os principais fabricantes lançaram seus próprios sistemas de armazenamento, como Huawei, Tencent e Baidu. Embora tenham serviços em nuvem, hospedagem em nuvem e outros superiores produtos de aplicativos de nível superior, mas você ainda precisa de um sistema de gerenciamento de armazenamento projetado por você mesmo na camada inferior.

Este artigo explica o uso de ferramentas de teste de desempenho de disco e a gravação de scripts para sistemas de armazenamento.

No artigo anterior, já falamos sobre o uso das ferramentas Fio. Se você quiser aprender, pode consultar o meu blog.

https://blog.csdn.net/u013521274/article/details/107949362

Hoje, o que vamos aprender é como usar outra ferramenta, o vdbench, que é uma ferramenta parecida com o fio, mas um pouco diferente do fio.

Por exemplo, fio tem dois modos, leitura e gravação, mas vdbench tem três modos, conforme mostrado na figura abaixo.

     

O Vdbench tem um modo a mais que o Fio, criar, que significa criar um arquivo. De acordo com a lógica normal, ele deve ser escrito após a criação do arquivo. No entanto, se o arquivo for grande e o tempo for gasto para escrever o arquivo, o tempo para criar o arquivo pode ser ignorado.

Portanto, o modo de criação do vdbench pode ser usado para criar um grande número de pequenos arquivos, porque a criação de pequenos arquivos leva tempo para criar (criar) em vez de gravar (gravar), então vdbench é para grandes lotes de pequenos arquivos. tarefa é melhor do que fio.

1. Instalação da ferramenta vdbench no Centos7

1.1 Prepare o ambiente java

Ao contrário do fio, fio depende do ambiente c ++, enquanto o vdbench depende do ambiente java. Já temos um tutorial para instalar o java no centos7, você pode consultar meu blog

https://blog.csdn.net/u013521274/article/details/109539711

1.2 Instalar vdbench

Baixe o pacote vdbench. Este pacote parece ser comum para Linux e Windows. Você pode baixá-lo em meus recursos:

https://download.csdn.net/download/u013521274/14915064

Após a conclusão do download, carregue-o no diretório Linux via winscp ou xftp.

Em seguida, descompacte e execute o comando

tar -zxvf vdbench50406.zip
或者
unzip vdbench50406.zip

Você pode visualizar o diretório descompactado na figura acima.

Em seguida, entre no diretório de descompressão através do comando cd

ls vista

Execute o seguinte comando para verificar a disponibilidade do test vdbench:

./vdbench -t

Se ocorrerem as seguintes condições, isso significa que está disponível.

2. Uso de vdbench

O Vdbench é usado para testes de desempenho. Ao contrário do fio, depois que o fio é instalado, o script pode ser executado em qualquer lugar depois de escrito.

Mas mesmo que o script seja escrito em vdbench, ele deve ser executado no diretório de instalação, o que não é muito conveniente. Então, para resolver este problema

Usaremos o script .sh para aninhar um arquivo na camada externa para que possamos executar nossos comandos em qualquer lugar.

2.1 Escreva as regras de teste vdbench

   Qualquer pessoa que já tenha usado o Fio para testes de desempenho antes deve saber que atualmente estamos testando as velocidades de leitura e gravação em tamanhos de bloco como 4k, 8k, 128k, 1M, 2M, 4M, 128M e 1G. Existem também muitos blogs online

O tutorial explica como usá-lo, mas acho que a explicação deles é muito complicada. Vamos usá-lo diretamente e ver como escrevê-lo com um exemplo prático.

Veja a preparação de uma regra de teste de 4K.

fsd=fsd1,anchor=/mnt/test1/4k,depth=1,width=5,files=10,size=4k

fwd=fwd1,fsd=fsd1,operation=create,threads=8,xfersize=4k,fileio=sequential,openflags=o_direct

rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=3600,interval=2

Existem muitos blogs para apresentar o fsd, fwd, rd, etc., não vou repeti-los, geralmente adiciono 1 ao final por padrão. A seguir está uma explicação dos vários parâmetros que usei em 4k.

O acima é um script de regra de teste de desempenho de disco com um tamanho de bloco de 4k e modo de criação. Ao mesmo tempo, também podemos escrever 8k, 1M, 1G e outros scripts de regras para que possamos chamar

1M lido

fsd=fsd1,anchor=/mnt/test2/1M,depth=1,width=10,files=10000,size=1M

fwd=fwd1,fsd=fsd1,operation=read,threads=100,xfersize=1M,fileio=sequential,openflags=o_direct

rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=3600,interval=2

1M de gravação

fsd=fsd1,anchor=/mnt/test2/1M,depth=1,width=10,files=10000,size=1M

fwd=fwd1,fsd=fsd1,operation=write,threads=100,xfersize=1M,fileio=sequential,openflags=o_direct

rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=3600,interval=2

1G lido

fsd=fsd1,anchor=/mnt/test2/1G,depth=1,width=10,files=10,size=1G

fwd=fwd1,fsd=fsd1,operation=read,threads=100,xfersize=1M,fileio=sequential,openflags=o_direct

rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=3600,interval=2

Gravação 1G

fsd=fsd1,anchor=/mnt/test2/1G,depth=1,width=10,files=10,size=1G

fwd=fwd1,fsd=fsd1,operation=write,threads=100,xfersize=1M,fileio=sequential,openflags=o_direct

rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=3600,interval=2

Espere, escreva para que possamos chamá-lo.

2.2 Executar comandos aninhados com sh script

  Quando nosso script é escrito, ele é executado, mas o vdbench deve executar comandos em seu diretório de instalação, o que não é muito amigável, então usamos scripts sh para aninhá-lo.

Para implementar o script de teste em qualquer lugar.

#!/bin/bash

#测试挂载目录/mnt/test1/:4k 64k 128k 512k
#            /mnt/test2/:1M 8M 128M 1G
#规则文件:  ./nfs/
#日志:     ./testlog/NFS/

mkdir -p testlog/NFS/

#**************************Sequence create/write Test*************************#

#4k create
./vdbench -f ./nfs/4k_create -o testlog/NFS/4k_create

#64k create 
./vdbench -f ./nfs/64k_create -o testlog/NFS/64k_create


date
echo "test done"

Conforme mostrado no código acima, estamos testando o desempenho do diretório de montagem / mnt / test1. Depois de escrever o arquivo de regras de teste, o colocamos no diretório / nfs e o diretório de saída do log é / testlog.

2.3 Especifique o diretório de saída do log

Conforme mostrado na figura acima, criamos uma pasta testlog para armazenar os logs antes da execução, que são os resultados do nosso teste. E especifique o diretório de armazenamento de log após a execução de cada arquivo de regra.

O log de teste de desempenho do vdbench não se parece com fio, o resultado final é exibido diretamente na linha de comando, o vdbench irá gerar arquivos HTML, você deve exportar para o windos para visualizá-lo de forma mais conveniente.

Haverá logs em tempo real durante a execução do vdbench. (Mas não o resultado final)

3. Exemplo de execução de vdbench

Depois de executar o script, vamos para o diretório de saída do log para ver os resultados.

Se um erro for relatado durante o teste, voltamos para verificar errorlog.html, e para o resultado total, voltamos para summary.html,

apareceu em summary.html   

 A execução do Vdbench concluída com êxito representa uma execução bem-sucedida.

 O resultado geralmente é verificar o valor médio.Por exemplo, quando eu executo o modo de criação, você precisa verificar os indicadores de desempenho de criação.

A taxa resp dois indicadores representam a taxa de gravação e o número de leituras e gravações por segundo, semelhante ao BW e iops do fio.

 

4. Resumo

  Tanto o fio quanto o vdbench têm seus próprios méritos. De um modo geral, o fio é um pouco mais fácil de usar. O vdbench está sujeito a erros, especialmente em testes de desempenho de longo prazo (como um teste de estabilidade de 3 * 24 horas), o Fio tem um desempenho melhor.

Isso também pode ocorrer porque os dois dependem de plataformas de ambiente diferentes. O Fio pode ser mais estável dependendo do ambiente C ++.

 

Se você tiver alguma dúvida, deixe uma mensagem, e você deve responder quando vir.

 

 

 

Acho que você gosta

Origin blog.csdn.net/u013521274/article/details/112756172
Recomendado
Clasificación