LINUX.ORG.RU

Ubuntu KVM виртуализация SSD PCIe

 , , ,


3

4

Ubuntu 16.04 server используется для KVM виртуализации в небольшом офисе. Одна из виртуалок терминальный сервер Win + 1C. База 1С файловая, размер > 10 гб. Чтоб база работала не скучно, ей был куплен PCIe SSD Kingston Predator.

Раньше гипервизор был Hyper-V 2012. Скорость всех устраивала, была как на голом железе. После смены Hyper-V на KVM. Cильно упала скорость проведения документов в 1С (-40%).

Crystal disk mark показывает сильные проседание в производительности в 4k random. (а это то что нужно файловой 1С) Линейные результаты почти как без виртуализации.

Пробовались такие варианты (virtio):

1) qcow2 поверх ext4

2) raw поверх ext4

3) /dev/sda -> в вм.

Пока из за нехватки времени, когда сервер можно настраивать, не получилось pcie -> в виртуалку. На домашнем есть положительный опыт с видеокартой.

Уважаемые гуру виртуализации KVM, есть еще какие нибудь варианты куда можно копнуть, не сильно глубоко, линукс только начал осваивать. Или обратно на Hyper-V где из коробки работало.

для начала какой на хосте io scheduler, и как настроена VM (virsh dumpxml)

dyasny ★★★★★ ()

Пробовались такие варианты (virtio): 1) qcow2 поверх ext4 2) raw поверх ext4 3) /dev/sda -> в вм.

virt-io драйвер в госте и LVM на хосте попробуй

и не забудь виртулке кеширование дисковых операций выключить. Обычно тормоза из-за кеширования люди ловят

targitaj ★★★★★ ()
Последнее исправление: targitaj (всего исправлений: 2)

Чтоб база работала не скучно ...

Во-первых, чтобы база работала не скучно, выделяй hugepages под qemu. Иначе можешь столкнуться с просто аддской фрагментацией памяти и жуткой потерей производительности.

Важно: только не используй transparent hugepages, и ставь размер страницы не больше 1GB.

qemu-system-...   -mem-path /mnt/hugepages \

/etc/sysctl.conf
vm.swappiness = 0

Убрать нафиг transparent hugepages, можно прям из ядра
echo never > /sys/kernel/mm/transparent_hugepage/enabled

sysctl.conf
vm.nr_hugepages = 8000

/etc/fstab:
hugetlbfs	/dev/hugepages			hugetlbfs	noatime,nodev,nosuid,noexec,mode=0770,uid=root,gid=kvm,noauto			0 0
/etc/local.d/
mkdir /dev/hugepages
mount /dev/hugepages

KSM:
echo 1 > /sys/kernel/mm/ksm/run
echo 200 > /sys/kernel/mm/ksm/sleep_millisecs

Если просто диски делаешь без проброса PCI, то:

Выравнивание:
* Начинать разделы с 2048s 
* Причина: 512 byte * 2048s = 1Mbit (откуда волшебное число 1 Mbit — неизвестно)

-drive if=virtio,addr=1f,format=qcow2,cache=writeback,aio=threads,file=...

Если мало памяти:
cache=none,aio=native,format=raw

* Don't use the linux filesystem btrfs on the host for the image files. It will result in low IO performance. The kvm guest may even freeze when high IO traffic is done on the guest. 
* Guest: schedular=deadline
* you can safely disable SATA/SCSI and also all other nic drivers if you only use VIRTIO (disk/nic)
* Currently performance is much better when using a host kernel configured with CONFIG_HIGH_RES_TIMERS. Another option is use HPET/RTC and -clock= qemu option.
* x-data-plane=on может мешать live-миграции

Еще посмотри на опции монтирования фс в host системе.

Sharing folders не используй в принципе. Это ОЧЕНЬ медленно.

Если нужна полная скорость, то пробрасывай PCI дискового контроллера в qemu.

PS: Особой разницы между qcow2 и qed я не заметил. Если выделяешь raw, то убедись, что выделяешь непрерывный кусок памяти, без «дыр».

soomrack ★★★ ()

Пока из за нехватки времени, когда сервер можно настраивать, не получилось pcie -> в виртуалку. На домашнем есть положительный опыт с видеокартой.

Убедись, что не из root шины пробрасываешь, если PCI порт с контроллером относится к ней, то переткни в другой порт.

soomrack ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.