HP DL380 G7 + Smart Array P410i + sysbench -> prestazioni di raid 10 scadenti


8

Ho un sistema in esecuzione con un basso utilizzo di IO:

  1. HP DL380G7 (24 gb di RAM)
  2. Smart Array p410i con cache di scrittura supportata da battary 512mb
  3. 6 unità SAS 10k rpm 146 gb in RAID10
  4. Debian Squeze Linux, ext4 + LVM, installato hpacucli

iostat (cciss / c0d1 = array raid10, dm-7 = partizione lvm 60G per test)

Dispositivo: rrqm / s wrqm / sr / sw / s rMB / s wMB / s avgrq-sz avgqu-sz attende svctm% util
cciss / c0d0 0,00 101,20 0,00 6,20 0,00 0,42 138,58 0,00 0,00 0,00 0,00
cciss / c0d1 0,00 395,20 3,20 130,20 0,18 2,05 34,29 0,04 0,26 0,16 2,08
dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-2 0,00 0,00 3,20 391,00 0,18 1,53 8,87 0,04 0,11 0,05 1,84
dm-3 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-4 0,00 0,00 0,00 106 106 0,00 0,00 0,42 8,00 0,00 0,00 0,00 0,00 0,00
dm-5 0,00 0,00 0,00 0,60 0,00 0,00 8,00 0,00 0,00 0,00 0,00 0,00
dm-6 0,00 0,00 0,00 2,8 2,8 0,00 0,01 8,00 0,00 0,00 0,00 0,00 0,00
dm-1 0,00 0,00 0,00 132,00 0,00 0,52 8,00 0,00 0,02 0,01 0,16
dm-7 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-8 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

hpacucli "ctrl tutto mostra config"

Smart Array P410i nello slot 0 (incorporato) (sn: 5001438011FF14E0)

   array A (SAS, Spazio inutilizzato: 0 MB)


      logicaldrive 1 (136.7 GB, RAID 1, OK)

      physicaldrive 1I: 1: 1 (porta 1I: casella 1: alloggiamento 1, SAS, 146 GB, OK)
      physicaldrive 1I: 1: 2 (porta 1I: casella 1: alloggiamento 2, SAS, 146 GB, OK)

   array B (SAS, Spazio inutilizzato: 0 MB)


      logicaldrive 2 (410.1 GB, RAID 1 + 0, OK)

      physicaldrive 1I: 1: 3 (porta 1I: casella 1: alloggiamento 3, SAS, 146 GB, OK)
      physicaldrive 1I: 1: 4 (porta 1I: casella 1: alloggiamento 4, SAS, 146 GB, OK)
      physicaldrive 2I: 1: 5 (porta 2I: casella 1: alloggiamento 5, SAS, 146 GB, OK)
      physicaldrive 2I: 1: 6 (porta 2I: casella 1: alloggiamento 6, SAS, 146 GB, OK)
      physicaldrive 2I: 1: 7 (porta 2I: casella 1: alloggiamento 7, SAS, 146 GB, OK)
      physicaldrive 2I: 1: 8 (porta 2I: casella 1: alloggiamento 8, SAS, 146 GB, OK)

   SEP (ID fornitore PMCSIERA, modello SRC 8x6G) 250 (WWID: 5001438011FF14EF)

hpacucli "ctrl mostra tutto lo stato"

Smart Array P410i nello slot 0 (incorporato)
   Stato controller: OK
   Stato cache: OK
   Stato batteria / condensatore: OK

Comando Sysbench

sysbench --init-rng = on --test = fileio --num-thread = 16 --file-num = 128 --file-block-size = 4K --file-total-size = 54G --file-test -mode = rndrd --file-fsync-freq = 0 --file-fsync-end = off run --max-request = 30000

Risultati di Sysbench

sysbench 0.4.12: benchmark di valutazione del sistema multi-thread

Esecuzione del test con le seguenti opzioni:
Numero di thread: 16
Inizializzazione del generatore di numeri casuali dal timer.


Flag aperti per file extra: 0
128 file, 432 Mb ciascuno
54 GB di dimensione totale del file
Dimensione del blocco 4Kb
Numero di richieste casuali per IO casuale: 30000
Rapporto lettura / scrittura per IO test casuale combinato: 1,50
Utilizzo della modalità I / O sincrona
Fare test di lettura casuale
Le discussioni sono iniziate!
Fatto.

Operazioni eseguite: 30000 Lettura, 0 Scrittura, 0 Altro = 30000 Totale
Leggi 117.19Mb Scritto 0b Totale trasferito 117.19Mb (935.71Kb / sec)
  233.93 Richieste / sec eseguite

Riepilogo dell'esecuzione del test:
    tempo totale: 128.2455s
    numero totale di eventi: 30000
    tempo totale impiegato per l'esecuzione dell'evento: 2051.5525
    statistiche per richiesta:
         min: 0.00ms
         media: 68.39ms
         max: 2010.15ms
         circa. 95 percentile: 660.40ms

Equità dei thread:
    eventi (avg / stddev): 1875.0000 / 111.75
    tempo di esecuzione (avg / stddev): 128.2220 / 0.02

iostat durante il test

avg-cpu:% user% nice% system% iowait% steal% idle
           0,00 0,01 0,10 31,03 0,00 68,86

Dispositivo: rrqm / s wrqm / sr / sw / s rMB / s wMB / s avgrq-sz avgqu-sz attende svctm% util
cciss / c0d0 0,00 0,10 0,00 0,60 0,00 0,00 9,33 0,00 0,00 0,00 0,00
cciss / c0d1 0,00 46,30 208,50 1,30 0,82 0,10 8,99 29,03 119,75 4,77 100,00
dm-0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-2 0,00 0,00 0,00 51,60 0,00 0,20 8,00 49,72 877,26 19,38 100,00
dm-3 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-4 0,00 0,00 0,00 0,70 0,00 0,00 8,00 0,00 0,00 0,00 0,00 0,00
dm-5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
dm-6 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,00 0,00 0,00 100 100
dm-1 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 7,00 0,00 0,00 100,00
dm-7 0,00 0,00 208,50 0,00 0,82 0,00 8,04 25,00 75,29 4,80 100,00
dm-8 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00

Bonnie ++ v1.96

cmd: / usr / sbin / bonnie ++ -c 16 -n 0

Scrivere un byte alla volta ... fatto
Scrivere in modo intelligente ... fatto
Riscrittura ... fatto
Leggere un byte alla volta ... fatto
Lettura intelligente ... fatto
inizia ... fatto ... fatto ... fatto ... fatto ... fatto ... fatto ...
Versione 1.96 ------ Uscita sequenziale ------ --Ingresso equivalente- - Casuale-
Concorrenza 16 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Dimensioni macchina K / sec% CP K / sec% CP K / sec% CP K / sec% CP K / sec% CP / sec% CP
seo-db 48304M 819 99 188274 17 98395 8 2652 78 201280 8 265,2 1
Latenza 14899us 726ms 15194ms 100ms 122ms 665ms

1.96,1.96, seo-db, 16,1337541936,48304M ,, 819,99,188274,17,98395,8,2652,78,201280,8,265.2,1 ,,,,,,,,,,,,,, ,,,, 14899us, 726ms, 15194ms, 100ms, 122ms, 665ms ,,,,,,

Domande

Quindi, sysbench ha mostrato 234 letture casuali al secondo.
Mi aspetto che sia almeno 400.
Quale può essere il collo di bottiglia? LVM?
Un altro sistema con mdadm raid1 + 2 unità a 7200 giri / min mostra oltre 200 letture casuali al secondo ...

Grazie per qualsiasi aiuto!


Qual è la dimensione della striscia? iostat sembra che sysbench funzionasse su un solo disco fisico.
Dmitri Chubarov,

hpacucli afferma che la dimensione della striscia è 256k. I dispositivi DM-x di iostat non sono unità fisiche, ma partizioni LVM. DM-7 è una partizione lvm da 60 GB, dove ho eseguito sysbench.
Oleg Golovanov,

Cosa stai testando esattamente con questa particolare sysbenchriga di comando? Stai simulando uno scenario di utilizzo reale?
ewwhite,

Sto simulando il database PostgreSql, che utilizza internamente blocchi da 4kb. La mia app effettua molte letture / scritture casuali su file di dati di grandi dimensioni (l'app è stata interrotta al momento del test)
Oleg Golovanov,

Risposte:


10

Il tuo sistema è decisamente sottoperformato in base alle tue specifiche hardware. Ho caricato l' sysbenchutilità su un paio di server HP ProLiant DL380 G6 / G7 inattivi che eseguono CentOS 5/6 per verificarne le prestazioni. Queste sono partizioni fisse normali anziché LVM. (In genere non utilizzo LVM, a causa della flessibilità offerta dai controller HP Smart Array)

DL380 G6 ha un array RAID 1 + 0 a 6 dischi su un controller Smart Array P410 con 512 MB di cache con batteria. DL380 G7 ha un array SSD SLC aziendale a 2 dischi. I filesystem sono XFS . Ho usato la stessa riga di comando di sysbench che hai fatto:

sysbench --init-rng=on --test=fileio --num-threads=16 --file-num=128 --file-block-size=4K --file-total-size=54G --file-test-mode=rndrd --file-fsync-freq=0 --file-fsync-end=off --max-requests=30000 run

I miei risultati sono stati 1595 letture al secondo casuali su 6 dischi.
Su SSD, il risultato è stato 39047 letture al secondo casuali . I risultati completi sono alla fine di questo post ...

  • Per quanto riguarda la tua configurazione, la prima cosa che mi viene in mente è la dimensione della tua partizione di prova. Stai quasi riempiendo la partizione da 60 GB con 54 GB di file di test. Non sono sicuro che ext4 abbia un problema con il 90% in più, ma questa è la cosa più veloce da modificare e ripetere il test. (o utilizzare un set più piccolo di dati di test)

  • Anche con LVM, ci sono alcune opzioni di ottimizzazione disponibili su questo controller / setup del disco. È utile controllare il read-ahead e modificare l' impostazione dello scheduler I / O dal cfq predefinito alla scadenza o noop . Si prega di consultare la domanda e le risposte a: Linux - regolazione del controller RAID hardware reale (scsi e cciss)

  • Qual è il rapporto cache del controller RAID? In genere utilizzo un saldo di scrittura / lettura del 75% / 25%. Questo dovrebbe essere un test rapido. L'array a 6 dischi è stato completato in 18 secondi. Il tuo ha impiegato più di 2 minuti.

  • È possibile eseguire un test Bonnie ++ o iozone sulla partizione / matrice in questione? Sarebbe utile vedere se ci sono altri colli di bottiglia nel sistema. Non avevo familiarità con sysbench , ma penso che questi altri strumenti offriranno una migliore panoramica delle capacità del sistema.

  • Le opzioni di montaggio del filesystem possono fare una piccola differenza, ma penso che il problema potrebbe essere più profondo di così ...

uscita hpacucli ...

Smart Array P410i in Slot 0 (Embedded)    (sn: 50123456789ABCDE)

   array A (SAS, Unused Space: 0 MB)

      logicaldrive 1 (838.1 GB, RAID 1+0, OK)

      physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)
      physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, OK)
      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 300 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 300 GB, OK)
      physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 300 GB, OK)
      physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 300 GB, OK)

   SEP (Vendor ID PMCSIERA, Model  SRC 8x6G) 250 (WWID: 50123456789ABCED)

Risultati 6 dischi su sysbench DL380 G6 ...

sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 16
Initializing random number generator from timer.

Extra file open flags: 0
128 files, 432Mb each
54Gb total file size
Block size 4Kb
Number of random requests for random IO: 30000
Read/Write ratio for combined random IO test: 1.50
Using synchronous I/O mode
Doing random read test
Threads started!
Done.

Operations performed:  30001 Read, 0 Write, 0 Other = 30001 Total
Read 117.19Mb  Written 0b  Total transferred 117.19Mb  (6.2292Mb/sec)
 1594.67 Requests/sec executed

Test execution summary:
    total time:                          18.8133s
    total number of events:              30001
    total time taken by event execution: 300.7545
    per-request statistics:
         min:                                  0.00ms
         avg:                                 10.02ms
         max:                                277.41ms
         approx.  95 percentile:              25.58ms

Threads fairness:
    events (avg/stddev):           1875.0625/41.46
    execution time (avg/stddev):   18.7972/0.01

Risultati SSD sysbench DL380 G7 ...

sysbench 0.4.12:  multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 16
Initializing random number generator from timer.


Extra file open flags: 0
128 files, 432Mb each
54Gb total file size
Block size 4Kb
Number of random requests for random IO: 30000
Read/Write ratio for combined random IO test: 1.50
Using synchronous I/O mode
Doing random read test
Threads started!
Done.

Operations performed:  30038 Read, 0 Write, 0 Other = 30038 Total
Read 117.34Mb  Written 0b  Total transferred 117.34Mb  (152.53Mb/sec)
39046.89 Requests/sec executed

Test execution summary:
    total time:                          0.7693s
    total number of events:              30038
    total time taken by event execution: 12.2631
    per-request statistics:
         min:                                  0.00ms
         avg:                                  0.41ms
         max:                                  1.89ms
         approx.  95 percentile:               0.57ms

Threads fairness:
    events (avg/stddev):           1877.3750/15.59
    execution time (avg/stddev):   0.7664/0.00

Grazie per la risposta dettagliata! I tuoi risultati sono fantastici ... >> In genere non utilizzo LVM, soprattutto con la flessibilità offerta dai controller HP RAID Che tipo di flessibilità intendi? >> Qual è il rapporto cache del controller RAID? 75/25, impostazione predefinita) >> Penso che il problema sia più profondo di così ... sì! Ho aggiunto i risultati di bonnie ++ v1.96 alla fine del mio post principale. Sembra che i risultati non siano così buoni :( All'inizio cercherò di allontanarmi da LVM ed eseguire di nuovo il test. Se non aiuta, suppongo, c'è qualcosa che non va nel controller raid.
Oleg Golovanov

Puoi mostrare il tuo bonnie++ riga di comando?
ewwhite,

Scusa colpa mia. Riga di comando: / usr / sbin / bonnie ++ -c 16 -n 0
Oleg Golovanov

3
Ho cambiato lo scheduler da cfq a noop e i risultati dei benchmark sono aumentati drasticamente! )) Ora sysbench mostra per me oltre 1500 letture casuali / secondo ... Grazie mille, grazie :)
Oleg Golovanov,

1
Prova deadlineanche ... Sotto i carichi di DB, potrebbe funzionare meglio di noop, inoltre ci sono alcuni parametri sintonizzabili nel tuo /sys/block/cciss1/queue/iosched/se lo usi deadline. Vedi questo post per maggiori dettagli sulla messa a punto più fine. In questo modo sono stato in grado di ottenere quel test fino a 2600 letture / secondo casuali.
ewwhite
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.