У нас є кластер Heartbeat / DRBD / пейсмейкер / KVM / Qemu / libvirt, що складається з двох вузлів. Кожен вузол працює з Ubuntu 12.04 64 біт із наступними пакетами / версіями:
- Ядро 3.2.0-32-generic # 51-Ubuntu SMP
- ДРБД 8.3.11
- qemu-kvm 1.0 + noroms-0ubuntu14.3
- libvirt 0,9.13
- кардіостимулятор 1.1.7
- серцебиття 3.0.5
Віртуальні гості мають Ubuntu 10.04 64 біт і Ubuntu 12.04 64 біт. Ми використовуємо функцію libvirt для передачі можливостей хост-процесорів віртуальним гостям для досягнення найкращих показників процесора.
Тепер ось загальна настройка цього кластеру:
- ВМ «моніторинг» має 4 ВКП
- VM "моніторинг" використовує ide як дисковий інтерфейс (зараз ми переходимо на VirtIO з очевидних причин)
Нещодавно ми провели кілька простих тестів. Я знаю, що вони не професійні і не досягають високих стандартів, але вони вже демонструють сильну тенденцію:
Вузол A працює VM "bla" Вузол B працює "VM" моніторинг "
Коли ми rsync файл з VM "bla" до VM "моніторинг", ми досягаємо лише 12 Мб / с. Коли ми виконуємо простий dd, якщо = / dev / null = = / tmp / blubb всередині "моніторингу" VM, ми досягаємо 30 Мб / с.
Потім ми додали ще 4 vCPU до «моніторингу» VM та перезапустили його. Тепер "моніторинг" ВМ має 8 вКПУ. Ми повторно провели тести з такими результатами: Коли ми rsync файл з VM "bla" до VM "моніторинг", ми тепер досягаємо 36 Мб / с. Коли ми виконуємо простий dd, якщо = / dev / null of = / tmp / blubb всередині «моніторингу» VM, ми досягаємо 61 Мб / с.
Для мене цей ефект досить дивовижний. Як випливає, що, мабуть, додавання більше віртуальних процесорів для цього віртуального гостя автоматично означає більшу продуктивність диска всередині VM?
У мене немає пояснення цьому, і я дуже вдячний вашим внескам. Я хочу зрозуміти, що викликає підвищення цієї продуктивності, оскільки я можу на 100% відтворити цю поведінку.
kvm_trace
щоб побачити, як IO_Exits
змінюється кількість при зміні номерів процесора. Я думаю, це тому, що ви використовуєте IDE, який планується проводити з гостьовими процесорами. У випадку virtio продуктивність повинна бути узгодженою, і коли площина даних знаходиться в qemu, вона отримає різке підвищення. Ще одна здогадка може полягати в тому, що ви використовуєте дистрибутив, відомий для баггічного стека віртуалізації.