Хост-система:
Ubuntu Server x64 12.04
mdadm raid 1 (/dev/sda /dev/sdb)
no lvm
dd bs=1M count=256 if=/dev/zero of=filename conv=fdatasync
avarage ~ 40 MB/s
NCQ on disks is disabled
WriteCache is disables
Гостевая система:
Ubuntu server i386 12.04
with lvm2 /10Gb /200Gb /200Gb disks all on lv-root (LV)
--- Physical volume ---
PV Name /dev/vda5
VG Name root-vg
PV Size 9.76 GiB / not usable 2.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 2498
Free PE 0
Allocated PE 2498
--- Physical volume ---
PV Name /dev/vdb
VG Name root-vg
PV Size 195.31 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 49999
Free PE 0
Allocated PE 49999
--- Physical volume ---
PV Name /dev/vdc
VG Name root-vg
PV Size 195.31 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 49999
Free PE 0
Allocated PE 49999
dd bs=1M count=256 if=/dev/zero of=filename conv=fdatasync
avarage ~ 30 MB/s
all disks in guest are RAWformat /VirtioBUS / No cache / IOmode=native
через некоторое время скорость записи падает до 1 МБ/с, но хостовая система не загружена и dd test показывает те же 30-40 МБ/с, загрузка процессора 10%. Перезагрузка гостевой ОС помогает на некоторое время. Ошибок/сбоев нет/пересборки или повторной синхронизации mdadm нет.
Понятия не имею, в чем проблема и куда копать.
Похоже, это помогает в гостевой системе: sync && echo 3 > /proc/sys/vm/drop_caches
Похожая проблемаВ системе с 64 ГБ памяти буфер Linux заполняется при копировании с помощью dd на dev null, а io останавливается до ручного drop_caches
решение1
Я думаю, что происходит следующее: начальная производительность в 30-40 МБ/с обусловлена кэшированием ядра Linux (и любым другим кэшированием, которое может происходить на аппаратном уровне). Как только это кэширование «исчерпано», начинает включаться фактический доступ к диску, и производительность падает.
Кроме того, для того, чтобыдддля лучшей производительности установитебс=аргумент к достаточно большому размеру. Лично я предпочитаю устанавливать его на уровне около 1/3-1/2 доступной оперативной памяти. Ваша настройка 1M неоптимальна и является основной причиной низких показателей производительности. Но даже при оптимальномбс=настройки, вы в какой-то момент увидите падение производительности, как описано выше.