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

Почему KVM VPS медленнее OPENVZ

поэтому я только что купил один KVM vps, и когда я сравнил его с моим существующим openvz vps, я обнаружил, что он медленнее, чем openvz vps, и когда я проверил информацию о процессоре, его немного неправильная информация, поэтому мне интересно, может ли компания контролировать общий доступ к процессору кеш между разными контейнерами KVM или нет?

на kvm: cat / proc / cpuinfo

vendor_id       : GenuineIntel
cpu family      : 6
model           : 79
model name      : Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
stepping        : 1
microcode       : 0x1
cpu MHz         : 2199.996
cache size      : 4096 KB
bogomips        : 4399.99

Я проверил на сайте Intel, что у этого процессора E5 около 30 МБ кеш-памяти.

на openvz vps: cat / proc / cpuinfo

vendor_id       : GenuineIntel
cpu family      : 6
model           : 63
model name      : Intel(R) Xeon(R) CPU E5-1660 v3 @ 3.00GHz
stepping        : 2
microcode       : 46
cpu MHz         : 2999.918
cache size      : 20480 KB
bogomips        : 5999.83

размер кеша составляет 20 МБ, что реально.

после этого я сделал скамейку для процессора

на kvm: sysbench --test = cpu --cpu-max-prime = 20000 запустить

Maximum prime number checked in CPU test: 20000


Test execution summary:
    total time:                          30.1875s
    total number of events:              10000
    total time taken by event execution: 30.1860
    per-request statistics:
         min:                                  2.57ms
         avg:                                  3.02ms
         max:                                  4.13ms
         approx.  95 percentile:               3.22ms

Threads fairness:
    events (avg/stddev):           10000.0000/0.00
    execution time (avg/stddev):   30.1860/0.00

в openvz: sysbench --test = cpu --cpu-max-prime = 20000 запустить

Maximum prime number checked in CPU test: 20000


Test execution summary:
    total time:                          26.5902s
    total number of events:              10000
    total time taken by event execution: 26.5889
    per-request statistics:
         min:                                  2.64ms
         avg:                                  2.66ms
         max:                                  3.17ms
         approx.  95 percentile:               2.70ms

Threads fairness:
    events (avg/stddev):           10000.0000/0.00
    execution time (avg/stddev):   26.5889/0.00

Как видите, разница составляет 4 секунды, что очень важно.

КОРОТКИЙ ОТВЕТ: Ваш процессор OpenVZ быстрее справляется с однопоточной нагрузкой, чем тот, который используется в KVM. Вдобавок к этому OpenVZ - это более легкий подход к виртуализации, поэтому, при прочих равных, он несколько быстрее, чем KVM.

ДЛИННЫЙ ОТВЕТ: KVM CPU - это Broadwell Xeon с базовой / турбо тактовой частотой 2,2–2,9 ГГц. OpenVZ использует Haswell Xeon с базовыми / турбо-тактовыми частотами 3,0–3,5 ГГц. Учитывая, что Haswell и Broadwell IPC в основном одинаковы, неудивительно, что самый быстрый процессор побеждает в однопоточном тесте.

Что касается платформ виртуализации:

KVM - это платформа полной аппаратной виртуализации (полная HVM), в то время как OpenVZ использует контейнеризацию, а другие используют паравиртуализацию.

Первый подход, который в основном имитирует всю виртуальную машину / платформу, имеет преимущество очень высокой совместимости (даже с ОС, изначально написанной не с учетом виртуализации, например, Windows). К стоимости добавляются накладные расходы, которые могут быть весьма значительными при некоторых рабочих нагрузках. Конкретные паравиртуализированные драйверы могут быть добавлены к полной настройке HVM, что позволяет избежать некоторых накладных расходов.

С другой стороны, паравиртуализация требует совместной работы гостевой ОС (например, в форме гипервызовы). Другими словами, гостевая ОС должна была быть адаптирована для работы под конкретным супервизором / паравиртуализатором, поэтому паравиртуализированный хост не может запускать произвольную гостевую ОС. Преимущество заключается в гораздо меньших накладных расходах и, следовательно, в более высокой производительности.

Контейнеризация требует еще меньших затрат, чем паравиртуализация, поскольку существует только один экземпляр ОС; каждый другой VPS - это jail / chroot-on-steroid, который дублирует части пользовательского пространства, используя то же ядро ​​«основной» ОС. Это в то же время его основная сила и слабость: поскольку он только дублирует инструменты пользовательского пространства, накладные расходы очень низкие. С другой стороны, одно ядро ​​используется для все Образы VPS.

В любом случае, разница между полной HVM, паравиртуализацией и контейнеризацией в основном проявляется в задержках и рабочих нагрузках, связанных с вводом-выводом. Поскольку ваш эталонный тест представляет собой чистый стресс-тест ЦП, разница в основном может быть связана с другой конфигурацией ЦП (а не с разными гипервизорами).