KVM или OpenVZ: что выбрать
В 2026 году почти всегда стоит брать KVM: он дороже OpenVZ на десятки рублей в месяц, зато на нём работает всё, от Docker до Windows. OpenVZ оправдан в узком случае, и ниже видно, в каком, а в конце — команды, которыми можно проверить свой сервер за минуту.
Короткий ответ: берите KVM. На нём у вас своё ядро системы, и сервер ведёт себя как обычный компьютер: ставится Docker, Windows, любая версия Linux, работает собственный файрвол и подкачка. OpenVZ — это контейнер, который делит ядро с соседями по физической машине. Он дешевле и легче, но часть привычных программ в нём не запустится, и узнаёте вы об этом обычно уже после оплаты.
OpenVZ имеет смысл, только если задача простая, работает на Linux без Docker, а разница в цене для вас заметна. Ниже разберу, сколько эта разница составляет на деле и что именно ломается в контейнере.
Насколько OpenVZ дешевле на самом деле
Меньше, чем кажется. Я сравнивал тарифы с одинаковым объёмом памяти у одного и того же хостера: брал самый дешёвый KVM и самый дешёвый OpenVZ и смотрел разницу. Так удалось сравнить от 15 до 29 хостеров в зависимости от объёма памяти, данные каталога accsly на 27 октября 2026 года.
При 2 ГБ памяти KVM в середине выборки дороже на 59 ₽ в месяц, то есть примерно на 16%. При 4 ГБ разница больше, около 180 ₽ или 30%. За год это от 700 до 2 200 ₽. А у трети хостеров, которые продают оба вида, KVM того же объёма стоит столько же или даже дешевле, так что сначала стоит просто сравнить тарифы внутри одного хостера.
Выбор OpenVZ к тому же сильно сужает круг. Из 26 640 тарифов каталога на OpenVZ работают 501, это 1,9%, и продают их 84 хостера из 2 175. На KVM — 93,5% всех тарифов (сюда я отнёс и те, где хостер не указал виртуализацию: сейчас по умолчанию это почти всегда KVM). Остальное — VMware, Hyper-V, Xen и контейнеры LXC, и для вас как пользователя первые три ведут себя так же, как KVM.
Получается, что экономия на OpenVZ — это примерно стоимость обеда в месяц, а платите вы за неё ограничениями. Для работы, которую жалко потерять, я бы её не делал.
Что не заработает в контейнере OpenVZ
Всё, что требует своего ядра системы. В контейнере ядро одно на всю физическую машину, и менять его настройки может только хостер. На практике это выглядит так.
Docker часто не ставится или работает с ошибками. Многие хостеры прямо пишут в правилах, что Docker на OpenVZ не поддерживают. На OpenVZ 7 он иногда запускается, если хостер включил нужные возможности для контейнера, но это нужно уточнять до оплаты. Если проект собран на Docker или вы планируете n8n, GitLab Runner или Kubernetes, смотрите только KVM или подборку VPS для Docker.
Windows не запустится вообще. Контейнер использует ядро Linux хоста, поэтому другая система в нём невозможна. В каталоге ни одного тарифа OpenVZ с Windows нет, а среди KVM Windows доступна примерно на половине. Подборка: VPS с Windows.
Ядро старое, и обновить его нельзя. На OpenVZ 7 работает ядро версии 3.10, на устаревшем OpenVZ 6 — 2.6.32. Свежие дистрибутивы рассчитаны на более новые ядра, поэтому шаблона нужной вам версии Ubuntu у хостера может не оказаться. Не заработает и всё, что появилось в ядре позже: например, алгоритм BBR, который ускоряет отдачу файлов на дальние расстояния, требует ядра 4.9 и новее.
Свои модули ядра загрузить нельзя. Сюда попадает, например, WireGuard в ядре для частной сети между офисом и сервером. Его можно заменить версией, работающей без модуля, но только если хостер включил контейнеру сетевое устройство TUN. Как построить такую сеть на обычном KVM, разобрано в статье корпоративная сеть на VPS.
Подкачку не добавить. Команда swapon в контейнере не работает, так что при нехватке памяти процесс просто завершится. На KVM можно за минуту сделать файл подкачки на 1–2 ГБ и пережить всплеск нагрузки.
Память считается иначе. В тарифах OpenVZ часто пишут что-то вроде «1 ГБ гарантировано, до 2 ГБ», и верхняя цифра доступна, только пока она свободна на хосте. Рассчитывать стоит на нижнюю.
Когда OpenVZ всё-таки нормальный выбор
Когда задача маленькая, на Linux и без Docker. Допустим, вам нужен сервер для простого бота на Python, статического сайта, мониторинга чужих сайтов или тестов, которые не жалко потерять. Тогда контейнер справится, и за год вы сэкономите около тысячи рублей.
Ещё один плюс контейнера — у него почти нет накладных расходов. Система стартует за секунды, а из памяти тарифа на саму виртуализацию ничего не уходит. На тарифах с 512 МБ это заметно: на KVM ядро и системные службы займут из них около 100–150 МБ, в контейнере меньше.
Если такой вариант подходит, тарифы собраны в подборке VPS на OpenVZ. Похожий по устройству контейнер LXC встречается реже, примерно в 0,6% тарифов, его ограничения почти те же: VPS на LXC.
А KVM всегда честнее?
Не всегда. KVM сам по себе не гарантирует, что процессор не делят с десятком соседей: ядра в недорогих тарифах всё равно общие. Разница в том, что на KVM переподписку проще увидеть: система показывает время, которое у вашей машины отняли соседи. Как это проверить, покажу ниже. Если процессор будет загружен постоянно, ищите тарифы с выделенными ядрами, а для быстрых одиночных потоков — VPS с высокой частотой процессора.
Что брать под вашу задачу
Сайт на WordPress, Битриксе или Laravel с базой данных — KVM. Сайту полезна подкачка на случай всплеска и свежая версия PHP, а ради 50–80 ₽ в месяц нет смысла упираться в старое ядро. Подборка: VPS для сайта.
Всё на Docker, включая n8n, GitLab и Kubernetes, — только KVM, тут вариантов нет. Windows и программы под неё, например 1С, — тоже только KVM или Hyper-V.
Телеграм-бот на Python или Node.js без Docker, мониторинг, тестовый стенд — подойдёт и OpenVZ, если у того же хостера он заметно дешевле. Если разница меньше сотни рублей в месяц, я бы всё равно взял KVM: при переезде на Docker или новую версию системы не придётся менять сервер.
Устройство обоих типов и таблица различий собраны в статье VPS или VDS, а здесь перейдём к практике.
Как узнать, на чём работает ваш сервер
Хостеры не всегда пишут виртуализацию в тарифе, а иногда пишут неправильно. Проверить можно за минуту, подключившись к серверу по SSH. Самая простая команда есть в любом современном Linux:
systemd-detect-virt
Она выводит одно слово. kvm означает KVM, openvz — контейнер OpenVZ или Virtuozzo, lxc — контейнер LXC, vmware и microsoft — VMware и Hyper-V, xen — Xen. Если вывод none, вам досталась физическая машина без виртуализации. То же самое покажет hostnamectl в строке Virtualization.
Если systemd нет или ответу хочется найти подтверждение, есть три косвенных признака:
ls /proc/user_beancounters /proc/vz 2>/dev/null # файлы есть только в OpenVZ
uname -r # версия ядра
lscpu | grep -i hypervisor # у KVM: Hypervisor vendor: KVM
Если первая команда что-то вывела, вы в контейнере OpenVZ. Версия ядра вида 2.6.32-042stab… означает OpenVZ 6, а с vz7 в названии — OpenVZ 7. Ещё есть утилита virt-what, её ставят командой apt install virt-what и запускают от root; она понимает больше редких случаев.
Как понять, что серверу тесно из-за соседей
На KVM смотрите показатель steal, то есть время, которое гипервизор отдал другим машинам, хотя ваша просила процессор:
vmstat 1 10
Нужен столбец st справа. Если там 0–2, всё в порядке. Если под нагрузкой стабильно больше 5–10, соседи забирают заметную долю процессора, и сервер будет работать медленнее тарифа. Тот же показатель виден в top как st в строке %Cpu.
В OpenVZ steal обычно не виден, зато есть свой счётчик упёртых лимитов:
cat /proc/user_beancounters
Смотрите последний столбец, failcnt. Ненулевое значение в строке privvmpages или physpages значит, что контейнеру не хватало памяти и какие-то запросы были отклонены. Если цифры растут, тариф мал для вашей задачи, даже если free показывает свободную память.
Проверку стоит сделать в первые дни после оплаты, пока действует возврат денег. Тарифы с такой возможностью — в подборках VPS с возвратом денег и с тестовым периодом.