Сравнение на производителността на KVM и Xen


Описание на Xen и KVM

В момента хипервизорите KVM и Xen са най-популярните хипервизори с отворен код за Linux. Функционалността на двата хипервизора е приблизително еднаква, въпреки че всеки от тях изпълнява възложените технически задачи, използвайки различни методи.

поддържа KVM родно включен в ядрото на ОС Linux а за да стартирате виртуални машини, ви е необходим само компютър/сървър с процесор, който поддържа технология за хардуерна виртуализация (Intel-VT/AMD-V). Заслужава да се отбележи, че всички съвременни сървърни процесори го поддържат. Също така трябва да заредите модулите на ядрото KVM и както вече беше съобщено, те вече присъстват в ядрото на Linux. След зареждане на модулите, самото ядро ​​на ОС се превръща в хипервизор, който контролира виртуални машини.

С монтаж Xen нещата са малко по-сложни. Ще трябва да инсталирате специално модифицирано ядро ​​на ОС. Трябва обаче да се отбележи, че такива ядра присъстват и в най-популярните дистрибуции на Linux (Fedora, CentOS, Debian и други) и, за разлика от KVM, Xen не изисква поддръжка на хардуерна виртуализация/разбира се, ако няма да стартирате Windows OS, BSD на виртуални машини /. Самата система за виртуализация Xen може да се разглежда като „двуетажна система“, т.е. ядрото на ОС работи със специална привилегирована машина за гости (Dom0), който управлява други машини за гости (DomU).

Тъй като техническите възможности на системите за виртуализация KVM и Xen са приблизително еднакви, за обикновените потребители най-интересното е сравнението на производителността на работещите виртуални машини KVM и Xen. Подобни сравнителни тестове вече са провеждани от Phoronix преди повече от година и малко „гугъл“ можете да намерите и по-късни тестове за 2011 г., но времето не стои неподвижно и разработчиците непрекъснато правят промени в разработените от тях софтуерни продукти, което се отразява производителността на виртуалните машини.

Тестова платформа:

За тестовете използвахме два абсолютно идентични сървъра от SuperMicro, всеки от които беше оборудван с процесор Intel Xeon E3-1200 (четири ядра при 3.1 GHz), 24GB памет DDR3 и четири твърди диска WD RE-3 160GB (SATA), комбинирани в RAID10 дисков масив. BIOS на двата сървъра също беше една и съща версия.

Използваните основни и гостуващи виртуални машини Linux Fedora 20 с инвалиди SElinux. За по-чисти тестове на главния и виртуалния сървъри бяха спрени всички услуги, с изключение на тези, които са необходими за нормалната работа на виртуални машини.

Версии на използвания софтуер:

Файловата система беше използвана на дисковите дялове на основния и виртуалния сървъри XFS. Виртуалните машини са създадени с помощта на таблото за управление на virt-manager с настройките, които virt-manager използва за създаване на работещи виртуални сървъри KVM и Xen по подразбиране. Трябва също да се отбележи, че виртуалните дискове на всички VPSбяха RAW изображения и всички VPSy се открояваше от 8GB памет и 4 виртуални ядра. Машините за гости Xen се изпълняваха в режим "паравиртуализация", който осигурява по-добра производителност от хардуерната виртуализация Xen HW.

Някой ще забележи, че използваната операционна система е Fedora, която е тестовата платформа на Red Hat (компания, която полага значителни усилия за разработване на системата за виртуализация KVM). По този начин не може да се изключи, че поддръжката на KVM в софтуерни продукти от Red Hat ще бъде значително по-добра, отколкото в други дистрибуции на Linux.

Също така трябва да се помни, че сървърите обикновено хостват няколко десетки виртуални машини, всяка от които отнема процесорно време, извършва операции за четене/запис на диска и генерира мрежов трафик. Тези тестове не отчитат такава активност, ние се интересувахме от разликата в производителността между сървъра (без виртуализация) и виртуалната машина (KVM/Xen).

Всички тестове бяха извършени на сървъри с процесор Intel. Може би цялостната картина ще бъде напълно различна, ако тези тестове се извършват на сървъри с AMD процесор.

Резултати:

Като отправна точка взехме резултатите от тестове, проведени на сървъри без виртуализация. Несъответствието в резултатите от теста между сървърите (без виртуализация) е 0,51% или по-малко.

Резултатите от тестовете, получени на виртуални машини KVM в почти всички тестове, показват спад на производителността с 1,5% в сравнение със сървъри без виртуализация. Само при два теста разликата беше различна. Един от тези тестове е 7-Zip, който спадна с 2,79% в производителността. Странно, но тестът PostMark, който емулира работата на зает пощенски сървър, показа увеличение на производителността с 4,11% в сравнение със сървър без виртуализация.

Влошаването на производителността на Xen VMs беше по-значително от KVM. Три теста показаха спад от 2,5% в производителността, докато останалите тестове бяха по-лоши от KVM 2-4 пъти. В теста
PostMark спадът в производителността беше около 14,41%, и тестът "Временно подравняване на MAFFT", който VPS под KVM направи най-доброто в Xen показа един от най-лошите резултати.

Обобщена таблица с резултати: