Desempenho do Linux md vs. LVM

8

Estou tentando ajustar meu NAS, executando o openfiler e imaginando por que estou obtendo um desempenho de leitura relativamente ruim de 4 unidades WD RE3 em RAID 5.

EDIT: Por favor, note que estou falando sobre a velocidade de leitura do disco em buffer não as velocidades em cache

EDIT: Formatação alterada para deixar claro que existem dois conjuntos de saída.

Quando eu executo o hdparm no dispositivo meta, obtenho os níveis de desempenho que esperava, diminuindo para o volume e um terço da velocidade!

Alguém sabe por quê? O LVM é tão ruim assim?

Dean

Resultados do dispositivo Meta / dev / md0

[root@nas2 etc]# hdparm -tT /dev/md0
/dev/md0:
 Timing cached reads:   4636 MB in  2.00 seconds = 2318.96 MB/sec
 Timing buffered disk reads:  524 MB in  3.01 seconds = 174.04 MB/sec

Resultados do grupo / dev / mapper / vg1-vol1

[root@nas2 etc]# hdparm -tT /dev/mapper/vg1-vol1
/dev/mapper/vg1-vol1:
 Timing cached reads:   4640 MB in  2.00 seconds = 2320.28 MB/sec
 Timing buffered disk reads:  200 MB in  3.01 seconds =  66.43 MB/sec

Editar: Veja a seção da página do manual hdparm, que sugere que este é um teste perfeitamente válido para o desempenho de leitura sequencial, que é o problema que estou tentando resolver.

 -t     Perform timings of device reads for benchmark and comparison purposes.  For meaningful results, this operation should be repeated 2-3 times on an otherwise
              inactive system (no other active processes) with at least a couple of megabytes of free memory.  This displays the speed  of  reading  through  the  buffer
              cache  to  the  disk  without  any  prior caching of data.  This measurement is an indication of how fast the drive can sustain sequential data reads under
              Linux, without any filesystem overhead.  To ensure accurate measurements, the buffer cache is flushed during the  processing  of  -t  using  the  BLKFLSBUF
              ioctl.   If  the  -T  flag  is also specified, then a correction factor based on the outcome of -T will be incorporated into the result reported for the -t
              operation.
    
por Dean Smith 31.10.2009 / 13:26

5 respostas

9

As configurações readahead padrão para o LVM são realmente pessimistas. Experimente blockdev --setra 8192 /dev/vg1/vol1 e veja como isso afeta seu desempenho no LVM. Você sempre terá um desempenho atingido usando o LVM; medimos em sistemas configurados adequadamente com cerca de 10% do desempenho do dispositivo de bloco subjacente.

    
por 01.11.2009 / 17:12
4

Eu não tenho uma boa explicação, mas posso confirmar os resultados.

Teste de RAID (raid5, unidades de 4x1,5TB)

root@enterprise:# hdparm -tT /dev/md2
/dev/md2:
 Timing cached reads:   2130 MB in  2.00 seconds = 1065.81 MB/sec
 Timing buffered disk reads:  358 MB in  3.00 seconds = 119.15 MB/sec
root@enterprise:# hdparm -tT /dev/md2
/dev/md2:
 Timing cached reads:   2168 MB in  2.00 seconds = 1084.54 MB/sec
 Timing buffered disk reads:  358 MB in  3.01 seconds = 119.10 MB/sec

teste de volume que usa md2 como dispositivo físico.

root@enterprise:# hdparm -tT /dev/mapper/vg2-data
/dev/mapper/vg2-data:
 Timing cached reads:   2078 MB in  2.00 seconds = 1039.29 MB/sec
 Timing buffered disk reads:  176 MB in  3.03 seconds =  58.04 MB/sec
root@enterprise:# hdparm -tT /dev/mapper/vg2-data
/dev/mapper/vg2-data:
 Timing cached reads:   2056 MB in  2.00 seconds = 1028.06 MB/sec
 Timing buffered disk reads:  154 MB in  3.03 seconds =  50.81 MB/sec

Eu fiz a alteração proposta pelo womble e vi resultados como isso.

root@enterprise:# blockdev --setra 8192 /dev/mapper/vg2-data

root@enterprise:# hdparm -tT /dev/mapper/vg2-data
/dev/mapper/vg2-data:
 Timing cached reads:   2106 MB in  2.00 seconds = 1053.82 MB/sec
 Timing buffered disk reads:  298 MB in  3.00 seconds =  99.26 MB/sec
root@enterprise:# hdparm -tT /dev/mapper/vg2-data
/dev/mapper/vg2-data:
 Timing cached reads:   2044 MB in  2.00 seconds = 1022.25 MB/sec
 Timing buffered disk reads:  280 MB in  3.03 seconds =  92.45 MB/sec
    
por 13.04.2017 / 14:14
3

Certifique-se de comparar maçãs com maçãs.

hdparm -t é lido desde o início do dispositivo, que também é a parte mais rápida do disco, se você estiver fornecendo um disco inteiro (e os pratos giratórios).

Certifique-se de compará-lo com um LV desde o começo do disco.

Para ver o mapeamento use pvdisplay -m .

(ok, a diferença nos números pode ser insignificante. Mas pelo menos pense nisso:)

    
por 02.11.2009 / 01:12
0

A carga de trabalho criada pelo hdparm -T não é representativa de quase nenhum caso de uso, exceto as leituras de fluxo contínuo de um único arquivo grande. Além disso, se o desempenho for uma preocupação, não use o raid5.

    
por 31.10.2009 / 16:26
0

Você pode descobrir onde o hdparm está gastando seu tempo com blktrace (se estiver em I / O) ou oprofile (se estiver na CPU). Conhecer a configuração do LVM também ajudaria (pvdisplay, vgdisplay, lvdisplay).

    
por 31.10.2009 / 20:39