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

Плохая производительность ввода-вывода гостя KVM

У меня DOM0 с двумя жесткими дисками по 3 ТБ, настроенными как программный RAID1, также с 16 ГБ памяти. Дистрибутив Linux для DOM0 - это CentOS 6.3, а гипервизор - это KVM под управлением libvirt.

Я испытываю снижение производительности между DOM0 и DOMU, при этом пропускная способность записи DOMU составляет около 40% от DOM0. Я протестировал производительность с помощью следующей простой команды dd:

dd bs = 1M count = 1024 oflag = direct if = / dev / zero of = testb conv = fdatasync

Я настроил лифт DEADLINE для DOM0 и NOOP для DOMU, который, в свою очередь, является нестабильным Debian:

Linux vm1 2.6.32-5-amd64 #1 SMP Sun Sep 23 10:07:46 UTC 2012 x86_64 GNU/Linux

root@vm1:/home/paris# cat /etc/debian_version
6.0.6

Что касается конфигурации DOMU в libvirt, вот фрагмент XML для одного из виртуальных дисков, который на самом деле представляет собой простые необработанные файлы с ошибками:

<disk type='file' device='disk'>
  <driver name='qemu' type='raw' cache='none' io='native'/>
  <source file='/mnt/vmstore2/disks/vm1/boot.img'/>
  <target dev='vda' bus='virtio'/>
  <alias name='virtio-disk0'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>

Я также заметил, что в командной строке, сгенерированной libvirt, параметр «if» переключателя командной строки -drive установлен на «none» вместо «virtio»:

-drive file=/mnt/vmstore2/disks/vm1/root.img,if=none,id=drive-virtio-disk2,format=raw,cache=none,aio=native
-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk2,id=virtio-disk2

Я не знаю, является ли такое снижение производительности нормальным, но я читал, что VIRTIO может гарантировать почти идентичную пропускную способность между DOM0 и DOMU.

Спасибо за любую помощь.

Даже с помощью virtio использование файла образа для гостевого диска будет иметь определенные накладные расходы. Это может значительно различаться в зависимости от других операций ввода-вывода на том же физическом устройстве, на котором находится файл образа.

Если бы вы передали физический диск в качестве блочного устройства гостевой системе KVM с драйвером virtio, вы бы увидели гораздо более близкую к собственной пропускной способности. То же самое касается раздела или тома LVM, с теми же предостережениями ввода-вывода, что и выше (хотя обычно оба они работают лучше, чем файл образа диска).

Мы действительно используем файлы изображений в качестве диска для некоторых из наших гостевых систем KVM, но мы храним изображения на отдельном физическом диске или массиве, когда это возможно.