BILLmanager позволяет ограничить скорость трафика виртуального сервера, заказанного в VMmanager 6. Скорость снижается до указанного значения при перерасходе трафика. Ограничение можно задать для:
- входящего трафика — внутреннее наименование in;
- исходящего трафика — внутреннее наименование out.
Когда у клиента исчерпан лимит трафика, BILLmanager уведомляет VMmanager 6. VMmanager 6 понижает скорость соединения клиента до "бесплатной" — минимальной скорости, при которой клиент может продолжать использовать услуги. Опция позволяет провайдеру эффективно управлять трафиком клиентов, а клиенту продолжать пользоваться услугой, не превышая лимиты, и сократить стоимость услуги виртуального сервера.
Настройка в интерфейсе
Чтобы настроить ограничение для тарифа, перейдите в раздел Продукты → Тарифные планы → выберите тариф → кнопка Конфиг. → Трафик → активируйте опцию Ограничение скорости при перерасходе .
Вы можете указать лимиты:
- Включено в тариф — количество трафика, которое входит в стоимость тарифного плана дополнения "Трафик". После использования клиентом указанного количества включается ограничение скорости;
- Максимальное значение — максимальное количество трафика, которое может заказать клиент. После использования этого количества услуга будет выключена до наступления нового расчётного периода. Единица измерения трафика выбирается в настройках тарифного плана. По умолчанию используется ГиБ. Подробнее см. Настройка содержания тарифа;
Подробнее о том, как настроить ограничение скорости при перерасходе в интерфейсе, см. Тарифный план VMmanager 6
Настройка ограничения
Включение ограничения
Ограничение активируется после сбора статистики командой statdaily
. По умолчанию команда выполняется автоматически через механизм
billmaintain
:
- название задачи —
billstat
; - время запуска — 00:20 (серверное время).
Чтобы запустить механизм вручную, выполните команду:
/usr/local/mgr5/sbin/billmaintain --command billstat --module 123 --date 2025-12-30
Чтобы вручную запустить принудительное выполнение ежедневной проверки и применения ограничения для услуги в заданную дату, выполните команду:
/usr/local/mgr5/sbin/mgrctl -m billmgr service.statdaily item=123 statdate=2025-12-30 force=on
Снятие ограничения
Снятие ограничения зависит от настроек тарифного плана и происходит при одном из условий:
- наступление нового расчётного периода — ограничение снимается автоматически через
statdaily
:- для ежемесячной статистики — 1-го числа следующего месяца;
- для ежедневной статистики — на следующий день;
- оплата перерасхода — ограничение снимается при последовательном выполнении следующих условий:
- обработка обратных вызовов изменения или удаления расхода;
- отсутствие неоплаченных расходов по услуге в случае, когда клиент оплатил перерасход или администратор удалил задолженность.
Подробнее об условиях снятия ограничений см. в описании опции Ограничение скорости при перерасходе в статье Тарифный план VMmanager 6.
Если условием снятия ограничения является наступление нового расчётного периода, можно снять ограничение, не дожидаясь 1-го числа следующего месяца. Для этого добавьте в конфигурационный файл /usr/local/mgr5/etc/billmgr.conf строку Option BillTestMode
. Эта строка не даст ограничить скорость и отключит существующее ограничение.
Чтобы посмотреть наличие Option BillTestMode
, выполните команду:
/usr/local/mgr5sbin/mgrctl -m billmgr optionlist
Подробнее о конфигурационном файле см. статью Конфигурационный файл.
Хранение данных об ограничениях
В базе данных информация об ограничениях хранится в таблице item_limitation
в столбцах item
и addon
, где:
item
— id основной услуги;addon
— id дополнения (трафика), по которому срабатывает ограничение. Первичный ключ.
Оба столбца ссылаются на таблицу item
. Запись в таблице означает, что для дополнения действует ограничение. При снятии ограничения запись удаляется.
Модуль pmvmmgr6
Модуль pmvmmgr6
включает и снимает ограничение с помощью команд:
- включения ограничения:
/usr/local/mgr5/processing/pmvmmgr6 --command stat_limit_activate --item 123 --addonintname bandwidth
После выполнения команды в логе VMmanager 6 появится сообщение:
DEBUG: New limited throughput: inbound traffic = 7 Mbps, outbound = 4 Mbps
DEBUG: POST query to 'vm/v3/host/12345/resource': {
"net_in_mbitps" : 7,
"net_out_mbitps" : 4
}
...
DEBUG: Throughput has been limited for item#123
- снятия ограничения.
/usr/local/mgr5/processing/pmvmmgr6 --command stat_limit_deactivate --item 123 --addonintname bandwidth
После выполнения команды в логе VMmanager 6 появится сообщение:
DEBUG: New regular throughput: inbound traffic = 70 Mbps, outbound = 60 Mbps
DEBUG: POST query to 'vm/v3/host/12345/resource': {
"net_in_mbitps" : 70,
"net_out_mbitps" : 60
}
...
DEBUG: Throughput limit has been lifted from item#123
Функциональность команд ограничивает трафик на стороне VMmanager 6. BILLmanager обращается к VMmanager 6 с помощью команд выше.
Для значений скорости берутся поля из тарифного плана дополнения "Трафик":
- Ограничение на входящий трафик, Кбит/с — если поле пустое, значение берётся из поля Входящий трафик, Кбит/с. Если и это поле пустое, в VMmanager 6 передаётся скорость "0", которая полностью снимает ограничение;
- Ограничение на исходящий трафик, Кбит/с — если поле пустое, значение берётся из поля Исходящий трафик, Кбит/с. Если и это поле пустое, в VMmanager 6 передаётся скорость "0", которая полностью снимает ограничение.
Чтобы установить или снять ограничение вручную, используйте команды из раздела "Операции". Они содержат дополнительные проверки валидности и защиту от несогласованности данных.
Операции
Для установки и снятия ограничения услуги существуют следующие операции:
activate_statlimit
— готовит данные, отправляет запрос в VM6 для ограничения скорости. Если VM6 присылает ответ об успешном изменении скорости, вызывается операцияpost_activate_statlimit
-
post_activate_statlimit
— добавляет запись в таблицуitem_limitation
об ограничении -
deactivate_statlimit
— готовит данные, отправляет запрос в VM6 для снятия ограничения скорости. Если VM6 присылает ответ об успешном изменении скорости, вызывается операцияpost_deactivate_statlimit
-
post_deactivate_statlimit
— удаляет запись об ограничении в таблицеitem_limitation
Функция processingmodule.statlimit.activate
вызывает операцию activate_statlimit
. Функция processingmodule.statlimit.deactivate
вызывает операцию deactivate_statlimit
Операции автоматически делают повторную попытку запуститься при ошибке. Операции с префиксом post_
проверяют, что ограничение или снятие ограничения на стороне VMmanager 6 выполнено успешно. После этого происходит изменение таблицы БД item_limitation
. Выполняйте ограничение или снятие с запуском операция вручную командами:
- для включения ограничения:
/usr/local/mgr5/sbin/mgrctl -m billmgr processingmodule.statlimit.activate module=pmvmmgr6 item=123 addon_name=bandwidth
- для снятия ограничения:
/usr/local/mgr5/sbin/mgrctl -m billmgr processingmodule.statlimit.deactivate module=pmvmmgr6 item=123 addon_name=bandwidth