На производительность гостевой системы KVM влияет очень большое время ожидания диска virtblk

У меня есть несколько гостей KVM, работающих на Ubuntu 14.04 с использованием libvirt. Их производительность очень плохая. Прерывистый характер низкой производительности с изменчивостью порядка величины в простых тестах производительности и очевидным влиянием активности на другие виртуальные машины убедительно свидетельствует о том, что проблема заключается в конкуренции за ресурсы в хосте. Мониторинг Sar на гостях выявляет проблему с дисками virtblk, которые вынуждены очень долго ждать обслуживания запросов ввода-вывода. Например,

00:00:01          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
00:05:01     dev253-0      0.10      0.00      1.39     14.34      0.00 682539.72      0.14      0.00

Время ожидания всегда чрезвычайно велико и одинаково для всех гостей.

Типичная конфигурация диска:

<disk type='file' device='disk'>
  <driver name='qemu' type='raw'/>
  <source file='/var/lib/libvirt/images/Base-dev-0002-clone.img'/>
  <target dev='vda' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</disk>

На гостях были опробованы несколько вещей, включая настройки кеша и io = native в строке драйвера, клонирование из хранилища необработанных файлов img в логический том, лифт = крайний срок, virtio_blk.use_bio = 1, но без какого-либо значительного влияния.

Я понимаю, что виртуальный диск должен снижать производительность, но это крайне.

Какое типичное время ожидания для гостя KVM?

Принимая во внимание мое утверждение о конфликте ресурсов, какие ресурсы, ограничения и т. Д. Может потребоваться разместить на хосте? Хозяин имеет много ресурсов и не показывает никаких явных признаков проблем.

6
задан 17 July 2014 в 11:36

1 ответ

У меня недавно есть тот же выпуск

# iostat -dx 60
Linux 3.13.0-32-generic (hostname)  Wednesday, 04 March, 2015   _x86_64_    (6 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     2.46   51.49    4.12  1742.66   325.36    74.38     0.05  770.46  487.83 4300.67   0.15   0.81
scd0              0.00     0.00    0.08    0.00     0.31     0.00     8.00     0.00    0.73    0.73    0.00   0.73   0.01

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.03    0.02    0.20     0.13     0.93     9.85     0.00 35787.38    4.00 38769.33   0.31   0.01
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

, Обновляющий ядро и устанавливающий заголовки Linux, и linux-headers-generic на гостях KVM устраняют мою проблему ввода-вывода. Перезагрузка после установки.

# aptitude install linux-headers-3.13.0-46 linux-headers-3.13.0-46-generic linux-image-3.13.0-46-generic

После установки:

# iostat -dx 60
Linux 3.13.0-46-generic (hostname)  Wednesday, 04 March, 2015   _x86_64_    (6 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.36   19.36    0.42   227.23     4.51    23.44     0.01    0.50    0.45    2.92   0.14   0.28
scd0              0.00     0.00    0.04    0.00     0.18     0.00     8.00     0.00    0.36    0.36    0.00   0.36   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
2
ответ дан 17 July 2014 в 11:36

Другие вопросы по тегам:

Похожие вопросы: