Burstable-ядра и арифметика под ними
Burstable vCPU — это обещание о вашем среднем, а не о пике. Для множества задач это нормально и дёшево. Для всего, где есть горячий поток и дедлайн, это самая дорогая строка в счете, и она так не выглядит.
Что на самом деле продаёт burstable
Если написать прямо, без приукрашивания, burstable-план — это подписка на долю ядра с прилагаемым овердрафтом.
Сама модель вполне разумна. Именно спецификация умалчивает об этом.
Базовая линия, а не ядро
Вам положен процент одного физического ядра, обычно от пяти до сорока, с разрешением превысить его, пока хватает кредитов. Количество ядер в счете — это потолок, а не пол.
Кредиты накапливаются, пока вы спите
Время простоя зарабатывает овердрафт, который тратит время активности. Инстанс, который реально занят два часа в день, работает прекрасно. Тот, который занят шесть часов, упирается в базовую линию и остаётся там.
Соотношение и есть продукт
Оверселлинг здесь — не мошенничество, это бизнес-модель, и она работает, потому что большинство арендаторов в любой момент спят. Восемь-двадцать арендаторов на физическое ядро — обычное дело; это число редко публикуется.
Конкуренция не видна по цене
Два инстанса с одинаковым описанием, один на тихом узле, другой на загруженном, отличаются на коэффициент, который вы не увидите, пока не дадите нагрузку. Вы не выбираете узел.
Кремний обычно старее
Плотная и дешёвая аренда вознаграждает амортизированное железо. Burstable-парк часто на два-три поколения отстаёт, и это снова бьёт по вам на каждой однопоточной операции.
Как измерить это изнутри инстанса
Для этого не требуется содействия провайдера. Четыре замера, один вечер, на самом дешёвом тарифе, который они продают.
- 01
Замеряйте steal time под нагрузкой
И top, и vmstat показывают st. На по-настоящему выделенном ядре он равен нулю. Постоянные значения выше одного-двух процентов означают, что гипервизор выполняет на кремнии, за который вы платите, чью-то ещё нагрузку.
- 02
Гоняйте десять минут, а не десять секунд
Короткий бенчмарк измеряет ваш кредитный баланс. Запустите однопоточный целочисленный тест на десять минут и наблюдайте за падением результата; уровень, на котором он стабилизируется, и есть ваша реальная доля.
- 03
Проверьте тактовую частоту, затем проверьте её снова
Запишите буст-частоту в начале теста и через пять минут полной нагрузки. Падение на сорок процентов — это бюджет мощности и тепловыделения узла, распределяемый между всеми его пользователями.
- 04
Повторите в неудобное время
Запустите тот же тест в 03:00 и затем в 21:00 по местному времени площадки. Выделенная платформа выдаст один и тот же результат дважды. Перегруженная выдаст расписание ваших соседей.
Если техподдержка провайдера не может назвать коэффициент аллокации, это само по себе ответ, и он получен за тридцать секунд.
Две модели бок о бок
Левая колонка — не критика, а описание. Немало добросовестных операторов используют её осознанно и соответственно ценообразуют.
| Перепроданная с burst'ами | Выделенная, как продаём её мы | |
|---|---|---|
| Аллокация ядер | Доля физического ядра, превышаемая в кредит | Одно физическое ядро на ядро, выделенное один раз |
| Арендаторов на ядро | Обычно от восьми до двадцати | Один |
| Steal time под нагрузкой | Растёт с нагрузкой узла, заранее неизвестен | Ноль по построению |
| Устойчивая однопоточная нагрузка | Падает по мере исчерпания кредитного баланса | Стабилен, сколько бы вы его ни гоняли |
| Процессор | Что заполняет стойку, часто на два поколения старше | Ryzen 9 9950X или EPYC 9354P, только актуальное поколение |
| 内存 | Non-ECC на десктопных платах, с переподпиской | DDR5, registered ECC на линейке EPYC |
| Входная цена | Норма — три-восемь евро в месяц | 29 евро за четыре ядра Zen 5 и 16 ГБ |
| Предсказуемость | Зависит от недели ваших соседей | Зависит от вашей собственной нагрузки |
| Где болит | p99 задержка, время сборки, всё с дедлайнами | Счёт |
Когда перепроданный хост — лучшая покупка
Платить цены выделенного сервера за простаивающую машину — это не бережливость, а расточительство под лучшим брендом. Несколько категорий нагрузки вообще не должны приближаться к нам.
Мы не продаём ничего дешевле 29 евро в месяц, поэтому для целого класса задач мы — не тот магазин.
Рабочий цикл ниже пяти процентов
Вторичный DNS-сервер, мониторинговый зонд, jump-хост, личный почтовый ретранслятор. Такие вещи простаивают двадцать три часа и вспыхивают на секунду, и именно под это рассчитана модель с burst-ресурсами.
Широкий дешёвый fan-out
Тридцать маленьких узлов в тридцати городах, чтобы измерить что-то с тридцати углов. Покупать выделенные ядра тридцать раз, чтобы выполнять задачу, которая спит девяносто девять процентов времени, — странный способ тратить деньги.
Обучение и одноразовая работа
Где-то ломать вещи, переустанавливать еженедельно и удалять без сожаления. Здесь возврат покрывает семь дней; burstable-провайдер продаст вам месяц по цене бутерброда.
Жёсткий бюджетный потолок
Если реальный выбор — burstable-инстанс или никакого инстанса, берите burstable. Это настоящий компьютер, он запустит ваш проект, и это лучше, чем вообще ничего не выпустить.
Что мы делаем вместо этого
Выделено один раз, учтено один раз
Ядро, которое вы покупаете, — это ядро, на котором больше ничего не планируется. Никаких burst-кредитов, никакого steal time, никаких весов планировщика и никакого пункта в условиях, который тихо отменяет это на загруженном узле.
Только текущее железо
Ryzen 9 9950X для однопоточных задач и EPYC 9354P там, где важны количество ядер и ECC. Ничего старше текущего поколения нет в продакшене ни на одной из 34 площадок.
Лимиты задокументированы
Цифры fair-use трафика публикуются для каждого порта, а не подразумеваются. Если вы стабильно их превышаете, вам приходит письмо о выделенном порте 40 Gbit/s, а не неожиданный счёт.
“Сборка, которая на старом сервере занимала девятнадцать минут, здесь занимает четыре. Я потратил неделю, будучи убеждённым, что что-то настроил неправильно.”
Вопросы
Один. Ядра, память и NVMe выделяются при заказе и не считаются дважды, поэтому наш начальный план стоит от 29 евро, а не от 4.
Короткие моменты во время живой миграции, когда узел осушается для обслуживания. Это несколько секунд, и об этом объявляется заранее. В остальное время он должен быть нулевым, и тикет, показывающий иное, расследуется, а не объясняется.
Да, на любом плане, сколько угодно долго. Никаких троттлинга, кредитного баланса или письма о необычном характере использования. Бюджет на охлаждение полного узла уже оплачен.
Нет, и мы не планируем. Разумное решение — консолидация: несколько простаивающих задач на одном R-8 за 54 евро обычно стоят меньше, чем маленькие инстансы, которые они заменяют, и вы обновляете одну операционную систему, а не шесть.
Четыре ядра Zen 5 и никакой очереди перед ними
R-4 стоит 29 евро в месяц с 16 ГБ DDR5 и 200 ГБ NVMe Gen4. Нагружайте его до предела неделю, смотрите, как steal time остаётся нулевым, и оставляйте, только если разница реальна.