HP DL380 G7 + Smart Array P410i + sysbench - baixo desempenho do raid 10

7

Tenho sistema em execução com baixa utilização de IO:

  1. HP DL380G7 (24 gb de RAM)
  2. Smart Array p410i com 512 MB de cache de gravação suportada pelo battary
  3. unidades de 146gb SAS 10k rpm em RAID10
  4. Debian Squeze Linux, Ext4 + LVM, hpacucli instalado

iostat (cciss / c0d1 = array raid10, dm-7 = partição 60g lvm para teste):

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  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
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
dm-4              0,00     0,00    0,00  106,80     0,00     0,42     8,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
dm-6              0,00     0,00    0,00    2,80     0,00     0,01     8,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
dm-8              0,00     0,00    0,00    0,00     0,00     0,00     0,00     0,00    0,00   0,00   0,00

hpacucli "ctrl mostrar configuração"

Smart Array P410i in Slot 0 (Embedded)    (sn: 5001438011FF14E0)

   array A (SAS, Unused Space: 0 MB)


      logicaldrive 1 (136.7 GB, RAID 1, OK)

      physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 146 GB, OK)
      physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 146 GB, OK)

   array B (SAS, Unused Space: 0 MB)


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

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

   SEP (Vendor ID PMCSIERA, Model  SRC 8x6G) 250 (WWID: 5001438011FF14EF)

hpacucli "ctrl mostra todo status"

Smart Array P410i in Slot 0 (Embedded)
   Controller Status: OK
   Cache Status: OK
   Battery/Capacitor Status: OK

Comando Sysbench

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 run --max-requests=30000

Resultados do Sysbench

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:  30000 Read, 0 Write, 0 Other = 30000 Total
Read 117.19Mb  Written 0b  Total transferred 117.19Mb  (935.71Kb/sec)
  233.93 Requests/sec executed

Test execution summary:
    total time:                          128.2455s
    total number of events:              30000
    total time taken by event execution: 2051.5525
    per-request statistics:
         min:                                  0.00ms
         avg:                                 68.39ms
         max:                               2010.15ms
         approx.  95 percentile:             660.40ms

Threads fairness:
    events (avg/stddev):           1875.0000/111.75
    execution time (avg/stddev):   128.2220/0.02

iostat durante o teste

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

Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await  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
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
dm-4              0,00     0,00    0,00    0,70     0,00     0,00     8,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
dm-6              0,00     0,00    0,00    0,00     0,00     0,00     0,00     7,00    0,00   0,00 100,00
dm-1              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

Bonnie ++ v1.96

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

Writing a byte at a time...done
Writing intelligently...done
Rewriting...done
Reading a byte at a time...done
Reading intelligently...done
start 'em...done...done...done...done...done...
Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency  16     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size 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
Latency             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,,,,,,

Perguntas

Então, o sysbench mostrou 234 leituras aleatórias por segundo.
Eu espero que seja pelo menos 400.
Qual pode ser o gargalo? LVM?
Outro sistema com drives mdadm raid1 + 2x 7200rpm mostra mais de 200 leituras aleatórias por segundo ...

Obrigado por qualquer ajuda!

    
por Oleg Golovanov 19.05.2012 / 18:10

1 resposta

10

Seu sistema está definitivamente com desempenho ruim com base nas especificações do seu hardware. Carreguei o utilitário sysbench em alguns servidores HP ProLiant DL380 G6 / G7 inativos executando o CentOS 5/6 para verificar seu desempenho. Estas são partições fixas normais em vez de LVM. (Eu normalmente não uso o LVM, devido à flexibilidade oferecida pelos controladores HP Smart Array)

O DL380 G6 possui uma matriz RAID 1 + 0 de 6 discos em um controlador Smart Array P410 com 512 MB de cache de bateria. O DL380 G7 possui um array SLC SSD corporativo de 2 discos. Os sistemas de arquivos são XFS . Eu usei a mesma linha de comando do sysbench como você fez:

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

Meus resultados foram 1595 leituras por segundo aleatórias em 6 discos.
No SSD, o resultado foi 39047 leituras aleatórias por segundo . Os resultados completos estão no final deste post ...

  • Quanto à sua configuração, a primeira coisa que salta para mim é o tamanho da sua partição de teste. Você está quase preenchendo a partição de 60 GB com 54 GB de arquivos de teste. Não tenho certeza se o ext4 tem um problema com 90 +%, mas essa é a coisa mais rápida para você modificar e testar novamente. (ou use um conjunto menor de dados de teste)

  • Mesmo com o LVM, existem algumas opções de ajuste disponíveis nesta configuração de controlador / disco. Verificando a leitura antecipada e alterando a configuração Agendador de E / S do padrão cfq para prazo ou noop é útil. Por favor, veja a pergunta e as respostas em: Linux - real- ajuste de controlador RAID de hardware mundial (scsi e cciss)

  • Qual é a sua taxa de cache do controlador RAID? Eu normalmente uso um equilíbrio de escrita / leitura de 75% / 25%. Este deve ser um teste rápido. A matriz de 6 discos foi concluída em 18 segundos. Seu levou mais de 2 minutos.

  • Você pode executar um bonnie ++ ou iozone testa na partição / array em questão? Seria útil ver se existem outros afunilamentos no sistema. Eu não estava familiarizado com o sysbench , mas acho que essas outras ferramentas lhe darão uma visão geral das capacidades do sistema.

  • As opções de montagem do sistema de arquivos podem fazer uma pequena diferença, mas acho que o problema pode ser mais profundo do que isso ...

saída 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)

Resultados do disco 6 do 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

Resultados 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
    
por 20.05.2012 / 00:09