19 февраля 2021 Время чтения: 8 минут

Как управлять оверселлингом. Опыт компании FIRSTBYTE

Юрий Богданов

Генеральный директор хостинга FIRSTBYTE

ISPSystem

Генеральный директором хостинга FIRSTBYTE Юрий Богданов рассказал, почему обычно хостинг-провайдеры VDS/VPS оверселят ресурсы и как сделать так, чтобы клиенты остались при этом довольны.

Технологии виртуализации

Виртуализация была создана для того, чтобы распределять ресурсы вычислительной техники между разными окружениями, в каждом из которых работает собственная операционная система. При этом пространство жесткого диска делится для разных операционных систем. Ядра процессора и оперативная память также распределяются. Каждая виртуальная машина получает выделенный набор ресурсов, изолированный от других. Такие настройки подходят для виртуальных машин, которые потребляют большое количество ресурсов непрерывно. Они дают гарантированную производительность и доступность ресурсов в любой момент времени.

Но, как правило, виртуальные машины не потребляют все выделенные ресурсы постоянно. Свободные мощности простаивают, и оборудование используется не оптимально. Оверселлинг помогает решить эту проблему.

Что такое оверселлинг

Оверселлинг — это технологии, которые позволяют распределить между пользователями суммарно больше вычислительных ресурсов, чем физически доступно на оборудовании.
Оверселлинг реализован на специализированных платформах виртуализации (OVZ, LXD, KVM). В каждой из них используется свой набор технологий и разные доступные для оверселлинга, параметры.

Рассмотрим пример оверселлинга на технологии OVZ. На одном физическом сервере со 128 Гб RAM можно создать 4 виртуальных машины с 32 Гб памяти, таким образом распределив всю память. На технологии OVZ все процессы виртуальных машин работают в едином пространстве оперативной памяти. Допустим, по статистике мы видим что виртуальные машины в среднем не потребляют такой объем памяти, и в системе всегда доступно 60-70 Гб свободной памяти. Таким образом, мы можем назначить виртуальным машинам больший объем доступной памяти (например, 48 Гб). При этом мы будем уверенными, что в любой момент ресурсов для виртуальных машин будет достаточно. На примере данных четырёх виртуальных машин мы выделили суммарно 192 Гб оперативной памяти вместо 128 Гб доступных.

Пример оверселлинга. Физические ограничения сервера — 128 Гб RAM.
Но пользователям доступно больше ресурсов — всего на 192 Гб RAM

В результате каждому пользователю достанется больше оперативной памяти. Это возможно за счет того, что виртуальные машины редко загружают ресурсы на 100%.

Оверселлить можно различные ресурсы:

  • Канал передачи данных. Канал является общим для всех клиентов, и на практике его оверселлят всегда. Он редко утилизируется на 100%.
  • Процессорное время. Современные процессоры многоядерные. Ограничения по процессорам делаются указанием доступного количества ядер для виртуальной машины. Ограничения непосредственно по процессорному времени нужны редко. Только сложные системы виртуализации, такие как VMware, позволяют лимитировать процессорное время. Распределение ядер доступно практически во всех системах виртуализации.
  • Оперативную память оверселлят, если используется виртуализация OVZ или LXD. Системы виртуализации на базе KVM позволяют выделить и жёстко зарезервировать оперативную память за виртуальной машиной без оверселлинга.
  • Дисковое пространство, как правило, сразу доступно для оверселлинга в технологиях OVZ, LXD и в KVM, если используется файловый тип хранения образов виртуальных машин. Если же выделять память через LVM, оверселлинг станет невозможен: для клиента жестко зарезервируют дисковое пространство.

Для чего хостинг-провайдеры оверселлят

Чтобы снизить стоимость услуг
Без оверселлинга стоимость виртуальных машин была бы в разы выше, чем предлагают на рынке. Например, клиент может купить виртуальный сервер за 500 рублей, а без оверселлинга он заплатил бы 3000 и более за тот же набор ресурсов.

Чтобы улучшить утилизацию
Хостинг-провайдер несет прямые расходы на покупку серверного оборудования. Это процессоры, оперативная память, жесткие диски или SSD. Поэтому если у него есть 256 Гб оперативной памяти, её всю необходимо распределить по клиентам. А если клиенты используют только половину этих ресурсов, это означает, что 50% мощностей простаивают, хотя могли бы использоваться. Магия в том, чтобы грамотно утилизировать имеющиеся у провайдера ресурсы. И делать это так, чтобы каждому клиенту хватало мощностей, даже если он начнет их использовать на 100%.

Оверселлинг обладает ограничениями

Если применяется оверселлинг оперативной памяти и все клиенты начнут ее использовать, то общей оперативной памяти не хватит, и приложения получат ошибку в выделении памяти. Это приведет к невозможности запуска новых процессов. Аналогичная ситуация может произойти при оверселлинге дискового пространства. Такое не должно случаться.

Процессорное время — самый распространенный ресурс для оверселлинга. Несколько лет назад, когда был популярен майнинг, виртуальные машины часто взламывали и запускали майнинговое программное обеспечение. Оно избыточно потребляло процессорные ресурсы (CPU). Также были клиенты, которые умышленно заказывали недорогие VDS и нагружали процессор на полную мощность. Это имело массовых характер, и ресурсов CPU становилось недостаточно. В результате серверы начинали работать медленно. Приходилось принимать меры чтобы заблокировать возможность запуска данного специализированного ПО. Провайдеры вычисляли недобросовестных клиентов и сообщали о нарушении. Данное превышение не являлось критичным, а лишь замедляло работу серверов.

Сейчас хостинг-провайдерам более чем достаточно производительности системы ввода-вывода современных SSD и NMVe дисков и каналов связи. Превышение лимитов по этим ресурсам обычно не происходит.

Чаще всего провайдеры не против, чтобы клиенты, когда им нужно, потребляли все доступное процессорное время. Но если это происходит постоянно и с большим количеством клиентов, ресурсов оборудования не хватает. Такое бывает, когда сервер используется не для работы сайтов и сервисов клиентов, а для высоконагруженного парсинга, крупных торрент-трекеров, непрерывной компрессии или перекодировки аудио-видео информации.

Как оптимально организовать оверселлинг, чтобы клиенты были довольны

Выберите модель оверселлинга

Задача провайдера – чтобы клиенты получали все необходимые им ресурсы и чтобы на оборудовании хватало вычислительных мощностей как для текущих, так и для новых клиентов.

Необходимо определить, какие именно параметры будет оверселить хостинг-провайдер: какую политику он выберет и каким будет баланс между ценой и оверселлингом.

Мы в FIRSTBYTE развиваем виртуализацию на базе технологии KVM. Используем оверселлинг процессорного времени и канала связи. Оперативная память и дисковое пространство, как критичные для работы параметры, выделяются гарантировано.

В виртуализации OVZ оверселлинг применяется автоматически на все параметры: процессор, диск, оперативную память и канал связи. Здесь необходим внимательный контроль за доступными ресурсами.

Настройте мониторинг

Чтобы оверселлинг был незаметным для клиентов, опытные провайдеры уделяют внимание мониторингу вычислительных ресурсов. Для этого могут использоваться различные известные системы, такие как Сacti, Zabbix, Grafana. Мониторинг должен показывать распределение клиентов по оборудованию, загрузку процессора, оперативной памяти, каналов связи. Даже если нагрузка клиентов резко повысится, клиенты останутся довольны, потому что им будет хватать ресурсов.

Мы в компании FIRSTBYTE используем для мониторинга программное обеспечение от ISPsystem и системы Zabbix, Cacti. Используем и собственные разработки. Они интегрированы по API c платформами ISPsystem и снимают статистику, анализируют её в соответствии с нашими специальными алгоритмами, предоставляют информацию и оповещают в случае необходимости. Раз в час в обновляется система статистики. Она проверяет, чтобы в инфраструктуре всегда был запас вычислительных ресурсов (процессора, оперативной памяти, дискового пространства и каналов связи) для работы текущих пользователей и на случай повышения нагрузки. В том числе мы всегда держим резервное оборудование, готовое для расширения ресурсов кластера в горячем режиме. Мониторинг систем ведётся круглосуточно.

Наша система определяет среднюю нагрузку на виртуальные сервера, утилизацию ресурсов и отслеживает аномалии. Если мы видим, что какие-то виртуальные машины неожиданно и в течение длительного времени превышают использование ресурса — CPU или канала связи – скорее всего, такие машины либо взломанны, либо программное обеспечение дало сбой и перешло в аномальное потребление ресурсов. Мы сообщаем об этом клиентам и таким образом помогаем им в настройке программного обеспечения.

Благодаря мониторингу, мы можем распределить клиентов на оборудовании комфортным для них образом, чтобы каждый мог получить выделенные ему ресурсы в полном объеме. Раз в месяц пересматриваем данные статистики и аналитику, оптимизируем настройки.
Даже если большое количество клиентов даст высокую нагрузку на оборудование, мы всем предоставим нужные ресурсы.

Для клиентов с важными ресурсоемкими задачами в линейке тарифов компании FIRSTBYTE присутствуют тарифы серии Бизнес (Business) c постоянными гарантированными ресурсами без ограничений.

Как настроить оверселлинг и сохранить клиентов.
Советы хостинг-провайдеру

  • Определитесь с тем, какие параметры оверселлить в зависимости от бюджета на оборудование.
  • Выработайте систему мониторинга этих параметров, чтобы клиентам всегда было достаточно ресурсов.
  • Правильно настройте конфигурацию оверселлинга в программном обеспечении виртуализации.
  • Укажите в договорах, какие ресурсы доступны клиентам и какие есть ограничения на их потребление. Например, как долго можно использовать 100% процессорного времени и какой объем трафика в месяц выделяется на виртуальную машину.