[Sysadmins] Ядро ovz-el, software RAID5, его синхронизация и высокий LA
Alex Moskalenko
mav на elserv.msk.su
Вс Июн 3 18:06:57 MSK 2012
Здравствуйте!
Столкнулся с непонятным мне поведением системы на ovz-el при
синхронизации/создании/проверке программного массива RAID5.
Исходные данные: Intel(R) Core(TM)2 CPU 6420 на 2.13GHz, чипсет G31, SATA
ICH9R в режиме AHCI. 4 SATA жестких диска. На них собран программный
RAID5 массив
md5 : active raid5 sdc2[0] sdd2[4] sde2[2] sdf2[1]
1514703360 blocks super 1.2 level 5, 512k chunk, algorithm 2
[4/4] [UUUU]
bitmap: 6/482 pages [24KB], 512KB chunk, file: /_bitmap_md5
Работает все это на 2.6.32-ovz-el-alt63 (аналогичное поведение было на
ovz-el ядрах и до alt63). При создании/ребилде/проверке этого массива
получаю нехарактерно низкую для такой системы скорость синхронизации и
нехарактерно высокий LA. Также высокий LA получается при интенсивной
работе с массивом RAID5. С массивом RAID10, расположенным на тех же
дисках, таких эффектов не наблюдается.
Для примера - текущий снимок системы в момент проверки массива:
cat /proc/mdstat
Personalities : [raid1] [raid10] [raid6] [raid5] [raid4]
md5 : active raid5 sdc2[0] sdd2[4] sde2[2] sdf2[1]
1514703360 blocks super 1.2 level 5, 512k chunk, algorithm 2
[4/4] [UUUU]
[>....................] check = 4.6% (23342252/504901120)
finish=990.1min speed=8105K/sec
bitmap: 6/482 pages [24KB], 512KB chunk, file: /_bitmap_md5
uptime
17:21:52 up 23 days, 4:53, 1 user, load average: 50.28, 54.18, 49.92
В списке процессов видно ~255 штук [async/XXX] потоков ядра, из них в
состоянии R находится примерно LA 1min.
По dstat картина следующая:
----total-cpu-usage----
--dsk/sdc-----dsk/sdd-----dsk/sde-----dsk/sdf-- -net/total- ---paging--
---system--
usr sys idl wai hiq siq| read writ: read writ: read writ: read writ|
recv send| in out | int csw
4 2 60 33 0 1| 1082k 1198k: 586k 1196k:1070k 1196k: 574k
1198k| 0 0 | 23B 38B|1864 4188
1 69 30 0 0 0| 0 0 : 0 0 : 0 0 : 0 0
| 22k 27k| 0 0 | 25k 590k
2 73 24 0 0 0| 0 0 : 0 0 :8192B 0 : 0 0
: 0 0 : 0 0 | 43k 49k| 0 0 | 28k 583k
2 72 26 0 0 0| 0 9216B: 0 25k: 0 25k: 0
9216B| 44k 49k| 0 0 | 27k 582k
7 72 21 0 0 0| 0 1024B: 0 1024B: 0 1024B: 0
1024B| 19k 22k| 0 0 | 41k 605k
2 72 25 1 0 0|8568k 2048B:7644k 2048B:8116k 2048B:7584k
2048B| 43k 48k| 0 0 | 31k 526k
2 78 18 0 0 2| 56M 0 : 57M 0 : 56M 0 : 57M 0
| 41k 46k| 0 0 | 26k 585k
1 68 31 0 0 0| 0 0 : 0 0 : 0 0 : 0 0
|5318B 7801B| 0 0 | 25k 589k
1 70 28 0 0 0| 0 13k: 0 9216B: 0 9216B: 0
13k| 27k 31k| 0 0 | 30k 585k
5 71 24 0 0 0| 0 1024B: 0 1024B: 0 1024B: 0
1024B| 31k 35k| 0 0 | 36k 603k
2 75 23 0 0 1| 0 0 : 0 0 : 0 0 : 0 0
| 70k 78k| 0 0 | 30k 577k
2 70 28 0 0 0| 0 0 : 0 0 : 0 0 : 0 0
| 25k 28k| 0 0 | 30k 579k
1 69 29 0 0 0| 0 0 : 0 0 : 0 0 : 0 0
| 11k 14k| 0 0 | 25k 584k
2 76 20 0 0 2|7404k 972k:6384k 940k:8524k 940k:9712k
972k| 74k 82k| 0 0 | 25k 529k
5 72 21 0 0 1| 57M 1024B: 58M 1024B: 56M 1024B: 55M
1024B| 21k 24k| 0 0 | 34k 599k
3 75 22 0 0 0| 0 0 : 0 0 : 0 0 : 0 0
| 48k 54k| 0 0 | 33k 582k^C
Мне кажется, что на таком железе скорость синхронизации RAID5 в 10 Мб/с
при LA 50 - это несколько чересчур. При этом, как видно по dstat, ядра
загружены совсем не на 100%. Также из dstat видно очень больное
количество context switches и программных прерываний.
Подскажите пожалуйста, куда можно покопать в этом вопросе. Может быть,
можно что-то передать ядру/какому либо модулю, чтобы они не вели себя
так ээээ.... неадекватно?
--
WBR, Alex Moskalenko
Подробная информация о списке рассылки Sysadmins