поэтому я только что купил один 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, паравиртуализацией и контейнеризацией в основном проявляется в задержках и рабочих нагрузках, связанных с вводом-выводом. Поскольку ваш эталонный тест представляет собой чистый стресс-тест ЦП, разница в основном может быть связана с другой конфигурацией ЦП (а не с разными гипервизорами).