ubuntu kvm disk io замедление через некоторое время

ubuntu kvm disk io замедление через некоторое время

Хост-система:

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 неоптимальна и является основной причиной низких показателей производительности. Но даже при оптимальномбс=настройки, вы в какой-то момент увидите падение производительности, как описано выше.

Связанный контент