Benchmarks de leitura

Existem vários benchmarks de sistemas de arquivos espalhados pela net, uns realizados a muito tempo. Na maioria dos casos, temos testes realizados sobre a árvore de diretório do sistema operacional. Testes como, criar 10000 arquivos(touch), consultar por arquivos (find), criação de diretórios(mkdir), descompactar e desempacotar fontes do kernel (gzip/tar), entre outros. Na maioria das vezes temos um ou mais discos rígidos separados, afim de desvincular os nossos dados e aplicações, que na maioria das vezes sai do padrão de diretórios Unix (POSIX). Exemplo, separar um diretório chamado DB que fica na raiz (/DB). Nele ficarão meus arquivos de banco do SGDB Mysql, diferente do padrão /var/lib/mysql, por exemplo. Nota mental: “Sim, sempre que possível devo separar o meu /var em uma partição de preferência expansível (LVM)”. Mas no meu caso,  quero tudo separado do padrão. Os teste realizados foram realizados diretamente no(s) disco(s) que não contém o OS.

A metodologia utilizada para disco com ou sem RAID, foi a mesma. Preparar partição (cfdisk, fdisk), formatar (mkfs), mountar (mount), criar arquivo (dd), realizar teste de leitura do arquivo criado . Basicamente, apenas isso, acrescenta alguns detalhes de configuração nos testes com RAID. O intuito inicial não é fazer teste de estresse, é pegar o sistema de arquivo no teu estado inicial, fresquinho e sem buffer, para realizar os testes. Claro, não deixarei este tipo de teste fora do contexto, eles virão mais na frente. O arquivo de teste tem 4.8GB de tamanho e sempre criado com o seguinte comando e opções:

dd if=/dev/zero of=arquivo bs=1k count=4700000

A forma de formatação foi a mais padrão possível, apenas mkfs.<sistema de arquivo> /dev/disco.partição. Nada de especificar tamanho de blocos.

Os teste de I/O foram feito pelo VDT (Disk Visual Test), vdt -r arquivo –read –incr , ele me forneceu tudo que eu tinha em mente, antes de realizar os teste. Que era: “Ler um arquivo N a partir  do inicio, do fim, randomicamente e convergente”. Lembrando, o tópico diz “Benchmarks de leitura”. E outro grande detalhe, é: “Realizei os testes para não ficar apenas no “eu li isso em uma página de internet”. Não estou aqui julgando nada e ninguém.

Teste número 1:

“Quem vai ler um arquivo de forma incremental (inicio até o fim) de 4.8GB mais rápido ?”

Concorrentes: Ext2, Ext3, Ext4, ReiseFS, XFS.

Onde:

minreadperf = Performance mínima de leitura

avgreadperf = Performance média da leitura

maxreadperf = Performance máxima de leitura

elapsed = Tempo de duração

Teste número 2:

“Quem vai ler o mesmo arquivo de forma aleatória mais rápido ?”

Concorrentes: Ext2, Ext3, Ext4, ReiseFS, XFS.

Não temos como ter uma conclusão definitiva, mas já temos as primeiras características.

  • No requisito leitura incremental, a família Ext(2,3,4) se comportou praticamente igual. Diferença na leitura mínima, o EXT2 foi o menor de todos.
  • No requisito leitura aleatória, O EXT2 mostrou ser mais rápido. Ext3 teve o maior pico na leitura.
  • O XFS se comportou bem melhor que a família EXT nos testes.
  • O ReiseFS mostrou o melhor desempenho, sempre com boas médias.
  • Nota mental I: “1 segundo faz total diferença”.
  • Nota mental II: “Este foi o resultado de apenas uma operação por disco, imagine várias ? Nota mental I entra em ação.”

Continua no próximo post …

Advertisements

One thought on “Benchmarks de leitura

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s