Miglioramento della velocità di scrittura mdadm RAID-6


8

Ho un mdadm RAID-6 nel mio server di casa di HDD WD Green da 5x1Tb. La velocità di lettura è più che sufficiente: 268 Mb / s in gg. Ma la velocità di scrittura è di soli 37,1 Mb / s. (Entrambi testati tramite dd su file da 48 GB, la dimensione della RAM è di 1 GB, la dimensione del blocco utilizzata nel test è di 8 KB)

Potresti suggerire perché la velocità di scrittura è così bassa e ci sono modi per migliorarla? L'utilizzo della CPU durante la scrittura è solo del 25% (ovvero la metà di 1 core di Opteron 165) Nessun dato critico per l'azienda e il server è supportato da UPS.

mdstat è:

Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sda1[0] sdd1[4] sde1[3] sdf1[2] sdb1[1]
      2929683456 blocks super 1.2 level 6, 1024k chunk, algorithm 2 [5/5] [UUUUU]
      bitmap: 0/8 pages [0KB], 65536KB chunk

unused devices: <none>

Eventuali suggerimenti?

Cose come writeback, barrier, nobh non hanno aiutato. DD blockize = 1M, 8M non ha cambiato nulla. Sembra che mdadm legga fisicamente i settori per calcolare la parità anche se non ha importanza ... È corretto?

Aggiornamento: il degrado della velocità dopo la cache stripe alterata era in realtà dovuto al fatto che 1 HDD probabilmente non è riuscito durante il test, bello MrGreen

Risolto: dopo aver aumentato la cache stripe e il passaggio a bitmap esterna, le mie velocità sono di 160 Mb / s in scrittura, 260 Mb / s in lettura. :-D


Hey Bars .. Cosa hai modificato e dopo quale modifica le prestazioni sono scese a 120 Mb / s? Sto riscontrando un problema simile ma la mia performance è molto peggio :( Eventuali suggerimenti sarebbero utili! Grazie!

Nel mio caso ho avuto un errore del disco nel mezzo dell'ottimizzazione :-)
BarsMonster

Risposte:


9

Hai provato a sintonizzare / sys / block / mdX / md / stripe_cache_size?

Secondo questo post del forum (in norvegese, scusa) "ottimizzare questo parametro è più essenziale più dischi e più veloce sarà il sistema":

Sul mio sistema ottengo le migliori prestazioni usando il valore 8192. Se uso il valore predefinito di 256, le prestazioni di scrittura diminuiscono del 66%.

Citando la sua velocità per il confronto:

Dischi: 8xSeagate 2TB LP (5900 RPM) in mdadm RAID6 (-n 512) (stripe_size_cache = 8192).

CPU: Intel X3430 (4x2.4GHz, RAM ECC DDR3 da 8 GB)

Velocità: 387 MB / s in scrittura sequenziale, 704 MB / s in lettura sequenziale, 669 ricerche casuali al secondo.

Il mio server di casa ha quasi gli stessi dischi di te, usando RAID 5:

Dischi: 4x1.5 TB WD Green in RAID 5 (stripe_size_cache = 256 - impostazione predefinita)

CPU: Intel i7 920 (2,66 GHz, 6 GB RAM)

Velocità: 60 MB / s in scrittura sequenziale, 138 MB / s in lettura sequenziale (secondo Bonnie ++)

Quindi sembra che le prestazioni in scrittura sequenziale siano circa il 50% delle prestazioni in lettura.

Per quali prestazioni aspettarsi, il wiki Raid di Linux dice di RAID 5:

Le letture sono quasi simili alle letture RAID-0, le scritture possono essere piuttosto costose (richiedere la lettura prima della scrittura, al fine di poter calcolare le informazioni di parità corrette, come nelle operazioni del database), o simili a RAID-1 scritture (quando vengono eseguite scritture sequenziali più grandi e la parità può essere calcolata direttamente dagli altri blocchi da scrivere).

E su RAID 6:

Le prestazioni di lettura sono simili a RAID-5 ma le prestazioni di scrittura sono peggiori.


La velocità di scrittura è scesa a 15-20 Mb / s, la velocità di lettura è scesa a 110: -S Questo non ha senso :-(
BarsMonster

Prova alcuni altri valori, guarda cosa succede. Non sono un esperto di questo, ma ho WD Greens (4x1.5TB) in md RAID 5 con lo stesso problema: velocità di scrittura piuttosto lenta. Al momento il mio sistema non funziona, ma sperimenterò anche alla mia fine e aggiornerò qui se riesco a migliorarlo.
jg-faustus,

A proposito: hai AHCI abilitato? Quale file system - ext3, ext4?
jg-faustus,

Non sono sicuro di AHCI, è molto difficile dare un'occhiata al BIOS. ext4.
BarsMonster,

Dannazione, bloccato con una velocità di lettura di 120 Mb / s, non posso tornare al mio 268 :-( Questo è così frustrante ... Non vedo perché mdadm non possa leggere o scrivere dati in modo lineare a ~ 3x90 Mb / s. .. È solo stupido
BarsMonster il

4

provare

echo 32768 > /sys/block/md0/md/stripe_cache_size

e controllare;)


Nella risposta precedente stavamo testando diversi stripe_cache_sizes. L'impostazione su 32768 non ha migliorato nulla. Sono ancora a ~ 100Mb / sec scrive anche dopo l'aggiornamento (CPU E8500, ram da 8Gb e array 8x1Tb)
BarsMonster

ASSURDO! Ciò ha immediatamente aumentato le mie prestazioni di scrittura da ~ 70 MB / sa ~ 360 MB / s!?! Dio mio. WTF non è questo predefinito?!?
stolsvik,

Oh mia parola Funziona davvero ... Da [================> ....] recupero = 82,1% (1604609136/1953382144) finish = 122,7min speed = 47348K / sec to [ ================> ....] recupero = 82,3% (1607712880/1953382144) finitura = 56.2min velocità = 102451K / sec
Lmwangi

Nei miei test, il valore di 8192 sembra sufficiente. Nonostante abbia gettato tutto ciò che ho dovuto testare su un array, non sono riuscito a spingere stripe_cache_active a picchi più alti dei bassi 7000.
Jody Lee Bruchon,
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.