Документация BILLmanager 6

Ограничение скорости при перерасходе

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-го числа следующего месяца;
    • для ежедневной статистики — на следующий день;
  • оплата перерасхода — ограничение снимается при последовательном выполнении следующих условий:
    1. обработка обратных вызовов изменения или удаления расхода;
    2. отсутствие неоплаченных расходов по услуге в случае, когда клиент оплатил перерасход или администратор удалил задолженность.

Подробнее об условиях снятия ограничений см. в описании опции Ограничение скорости при перерасходе в статье Тарифный план 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
Подробнее
Дата последнего обновления статьи: 27.06.2025. Статья подготовлена техническими писателями ISPsystem