Prestazioni Linux vs LVM


8

Sto cercando di ottimizzare il mio NAS, eseguendo openfiler e chiedendomi perché sto ottenendo prestazioni di lettura relativamente scarse da 4 unità WD RE3 in RAID 5.

EDIT: Si noti che sto parlando della velocità di lettura del disco bufferizzata e non delle velocità memorizzate nella cache

EDIT: formattazione modificata per chiarire che ci sono due set di output.

Quando eseguo hdparm sul meta dispositivo ottengo i livelli di prestazioni che mi aspetto, scendo al volume ed è un terzo della velocità!

Qualcuno ha idea del perché? LVM è così male?

Decano

Risultati meta dispositivo / dev / md0

[root @ nas2 etc] # hdparm -tT / dev / md0
/ Dev / md0:
 Letture memorizzate nella cache: 4636 MB in 2,00 secondi = 2318,96 MB / sec
 Letture disco buffer temporizzate: 524 MB in 3,01 secondi = 174,04 MB / sec

Risultati gruppo vol / dev / mapper / vg1-vol1

[root @ nas2 etc] # hdparm -tT / dev / mapper / vg1-vol1
/ Dev / mapper / vg1-vol1:
 Letture memorizzate nella cache: 4640 MB in 2,00 secondi = 2320,28 MB / sec
 Letture disco buffer temporizzate: 200 MB in 3,01 secondi = 66,43 MB / sec

Modifica: vedere la sezione dalla pagina man di hdparm che suggerisce che questo è un test perfettamente valido per le prestazioni in lettura sequenziale che è il problema che sto cercando di risolvere.

-t Eseguire i tempi delle letture del dispositivo a fini di benchmark e confronto. Per risultati significativi, questa operazione deve essere ripetuta 2-3 volte su un altro
              sistema inattivo (nessun altro processo attivo) con almeno un paio di megabyte di memoria libera. Questo mostra la velocità di lettura attraverso il buffer
              cache sul disco senza alcuna precedente memorizzazione nella cache dei dati. Questa misurazione indica la velocità con cui l'azionamento è in grado di sostenere la lettura sequenziale di dati
              Linux, senza alcun sovraccarico di filesystem. Per garantire misurazioni accurate, la cache del buffer viene scaricata durante l'elaborazione di -t utilizzando BLKFLSBUF
              ioctl. Se viene specificato anche il flag -T, un fattore di correzione basato sull'esito di -T verrà incorporato nel risultato riportato per -t
              operazione.

hai provato test come bonnie++?
SaveTheRbtz,

Risposte:


10

Le impostazioni predefinite di readahead per LVM sono davvero pessimistiche. Prova a blockdev --setra 8192 /dev/vg1/vol1vedere cosa aumenta le tue prestazioni LVM. Farai sempre un colpo di prestazione usando LVM; lo misuriamo su sistemi correttamente configurati a circa il 10% delle prestazioni del dispositivo a blocchi sottostante.


4

Non ho una buona spiegazione, ma posso confermare i risultati.

Test di RAID (unità raid5, 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

test del volume che utilizza md2 come dispositivo fisico.

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

Ho apportato la modifica proposta da Womble e ho visto risultati come questo.

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

3

Assicurati di confrontare le mele con le mele.

hdparm -t legge dall'inizio del dispositivo che è anche la parte più veloce del tuo disco se gli stai dando un intero disco (e i suoi piatti rotanti).

Assicurati di confrontarlo con un LV dall'inizio del disco.

Per vedere la mappatura usare pvdisplay -m.

(ok, scontato, la differenza nei numeri può essere trascurabile. Ma almeno ci pensi :)


In realtà non è trascurabile. Se uso il volume che inizia all'estensione 0, le prestazioni sono quasi identiche. Questa è parte della risposta, ne sono sicuro.
Dean Smith,

Actaully scopre che se il volume è montato le prestazioni sono inferiori. Se smonto le prestazioni del volume corrispondono a quelle del dispositivo non elaborato. Questo sembra comunque un po 'strano.
Dean Smith,

0

Il carico di lavoro creato da hdparm -T non è rappresentativo per quasi tutti i casi d'uso ad eccezione delle letture di streaming da un singolo file di grandi dimensioni. Inoltre, se le prestazioni sono un problema, non utilizzare raid5.


3
Corretto, non è rappresentativo di un vero carico di lavoro, non ho suggerito che lo fosse. È tuttavia utile per confrontare le velocità di lettura dei dispositivi non elaborati. Il volume del meta-dispositivo e del gruppo vol dovrebbe avere velocità di lettura sequenziali grezze comparabili e loro no. Questo è il punto della domanda.
Dean Smith,

0

Puoi capire dove hdparm sta trascorrendo il suo tempo con blktrace (se è in I / O) o oprofile (se è su CPU). Anche la conoscenza della configurazione di LVM sarebbe di aiuto (pvdisplay, vgdisplay, lvdisplay).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.