Назад | Перейти на главную страницу

Почему raid-check использует такую ​​небольшую пропускную способность io?

Просто из любопытства у нас есть сервер RHEL с программным RAID. Существует cronjob, который время от времени запускает проверку данных рейда, чтобы проверить целостность массива. Насколько я понимаю, проверка данных будет использовать простаивающую полосу пропускания ввода-вывода, чтобы не мешать нормальной работе сервера.

Как видно из выходных данных iostat ниже, сервер практически простаивает. Почему проверка данных рейда использует только пропускную способность ввода-вывода 6 Мбит / с? Во время первоначальной сборки RAID я видел, что эти машины достигают 320 Мбит / с +. Почему при проверке данных не используются 200 МБ / с, как указано в записи журнала ядра в качестве максимальной пропускной способности?

Ниже приведен вывод журнала с момента последнего запуска проверки данных рейда:

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)

Вот некоторые результаты работы / proc / mdstat, относящиеся к 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

Вывод 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

Взгляните на / etc / sysconfig / raid-check. Это позволяет вам установить параметры ionice и nice для этой проверки. Значение по умолчанию - низкий, что дает 5 и снижает ионную мощность. Вы можете настроить это в настройках, если вам это не нравится, и вы хотите настроить его на использование большего количества ресурсов (в противном случае это будет мешать нормальной работе).

На этот вопрос много раз отвечали ... его можно установить с помощью:

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

и

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