GNU/Linux >> Linux Esercitazione >  >> Linux

RAID1 aumenta le prestazioni con Linux mdadm?

Sì, l'implementazione Linux di RAID1 velocizza le operazioni di lettura del disco di un fattore due, a condizione che vengano eseguite contemporaneamente due operazioni di lettura del disco separate . Ciò significa che la lettura di un file da 10 GB non sarà più veloce su RAID1 che su un singolo disco, ma la lettura di due file distinti da 10 GB* sarà più veloce.

Per dimostrarlo, basta leggere alcuni dati con dd . Prima di eseguire qualsiasi operazione, cancella la cache di lettura del disco con sync && echo 3 > /proc/sys/vm/drop_caches . Altrimenti hdparm rivendicherà letture super veloci.

File singolo:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 65,9659 s, 159 MB/s

Due file:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT skip=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 64,9794 s, 161 MB/s
10485760000 bytes (10 GB) copied, 68,6484 s, 153 MB/s

La lettura di 10 GB di dati ha richiesto 65 secondi, mentre la lettura di 10 GB + 10 GB =20 GB di dati ha richiesto 68,7 secondi in totale, il che significa che le letture multiple su disco traggono grandi vantaggi da RAID1 su Linux. skip=$COUNT parte è molto importante. Il secondo processo legge 10 GB di dati dall'offset di 10 GB.

La risposta di Jared e i commenti di ssh che fanno riferimento a http://www.unicom.com/node/459 sono sbagliati. Il benchmark da lì dimostra che le letture del disco non beneficiano di RAID1. Tuttavia, il test è stato eseguito con lo strumento di benchmarking bonnie++ che non esegue due letture separate contemporaneamente. L'autore afferma esplicitamente che bonnie++ non è utilizzabile per il benchmarking di array RAID (consulta il readme).


Sì, otterrai un aumento delle prestazioni di lettura + la ridondanza. Puoi facilmente immaginarlo poiché puoi leggere le parti dei file contemporaneamente da due diversi HDD poiché i file si trovano su entrambi gli HDD.

Quindi teoricamente, se il controller RAID fa bene il suo lavoro, potresti ottenere un aumento di velocità di O(n).


  • man 4 md afferma:"… Si noti che il bilanciamento della lettura eseguito dal driver non rende il profilo prestazionale RAID1 uguale a quello di RAID0; un singolo flusso di input non verrà accelerato (ad es. un singolo gg), ma più flussi sequenziali o un carico di lavoro casuale utilizzeranno più di un mandrino. In teoria , avere un RAID1 N-disco consentirà a N thread sequenziali di leggere da tutti i dischi. …"

  • Per finire, in pratica , basato su iostat l'output viene osservato su una tipica configurazione RAID software a 2 HDD, non c'è nessun bilanciamento . Infatti sembra effettivamente mdadm l'opzione --write-mostly di è sempre attivo.


Linux
  1. Migliora le prestazioni del sistema Linux con noatime

  2. Come monitorare le prestazioni del sistema Linux con Sysstat

  3. Comando JQ in Linux con esempi

  4. Linux – Come aumentare Maxsymlink?

  5. In che modo Linux gestisce gli script di shell?

Comando wc Linux con esempi

Come monitorare le prestazioni dei sistemi Linux con il comando iostat

Comando IP Linux con esempi

15 Comando Linux ps con esempi

Analisi delle prestazioni del server Linux con atop

Risolvi i problemi e monitora le prestazioni del sistema Linux con nmon