Por que o raid-check usa pouca largura de banda de io?

1

Apenas por curiosidade, temos um servidor RHEL rodando o software RAID. Há um cronjob que inicia uma verificação de dados de raid de tempos em tempos para verificar a consistência da matriz. Pelo que entendi, a verificação de dados utilizará a largura de banda de E / S inativa para não interferir na operação normal do servidor.

Como pode ser visto na saída do iostat abaixo, o servidor está praticamente inativo. Por que os dados do raid são verificados apenas usando 6 M / s de largura de banda de E / S? Durante a construção RAID inicial, vi essas máquinas atingirem 320 M / s +. Por que a verificação de dados não utiliza 200MB / seg como indicado como a largura de banda máxima na entrada de log do kernel?

Abaixo está a saída do registro de quando a verificação de dados do ataque foi iniciada pela última vez:

Apr 28 01:00:01 xxxx kernel: md: data-check of RAID array md1
Apr 28 01:00:01 xxxx kernel: md: minimum _guaranteed_  speed: 1000 KB/sec/disk.
Apr 28 01:00:01 xxxx kernel: md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for data-check.
Apr 28 01:00:01 xxxx kernel: md: using 128k window, over a total of 3824596992k.
Apr 28 01:00:07 xxxx kernel: md: delaying data-check of md0 until md1 has finished (they share one or more physical units)

Aqui está uma saída de / proc / mdstat relacionada ao md1:

md1 : active raid10 sdb2[1] sda2[0] sdd2[3] sdg2[6] sdh2[7] sde2[4] sdc2[2] sdf2[5]
      3824596992 blocks super 1.1 512K chunks 2 near-copies [8/8] [UUUUUUUU]
      [==========>..........]  check = 53.4% (2045997824/3824596992) finish=5255.6min speed=5639K/sec
      bitmap: 10/29 pages [40KB], 65536KB chunk

Saída do iostat -m:

[root@xxxx ~]# iostat -m
Linux 2.6.32-358.2.1.el6.x86_64 (xxxx)  05/01/2013  _x86_64_    (32 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.92    0.07    0.83    1.26    0.00   94.92

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sde              35.25         1.26         0.38    1520624     456526
sdf              33.15         1.21         0.38    1461256     456526
sdb              35.49         1.24         0.38    1485991     460191
sda              36.80         1.28         0.38    1542868     460191
sdc              31.64         1.26         0.36    1519241     429095
sdd              30.00         1.21         0.36    1460629     429095
sdh              30.51         1.21         0.35    1460819     424707
sdg              31.90         1.26         0.35    1519924     424707
md0               2.72         0.01         0.01       8465      12014
md1             177.21         0.38         1.34     453189    1607605
    
por dbryant4 08.05.2013 / 14:48

2 respostas

-1

Isso foi respondido muitas vezes ... pode ser definido com:

echo 50000 > /proc/sys/dev/raid/speed_limit_min

e

echo 50000 > /proc/sys/dev/raid/speed_limit_max
    
por 08.05.2013 / 16:26
1

Dê uma olhada em / etc / sysconfig / raid-check. Isso permite que você defina os parâmetros de ionização e bom para essa verificação. O padrão é baixo, o que diminui 5 e estabelece a ionização. Você pode ajustar isso na configuração se não gostar disso e quiser configurá-lo para usar mais recursos (com a penalidade de interferir mais em trabalhos normais).

    
por 06.10.2013 / 20:49