BotBan

Новости проекта

Нагрузка на сервер: сколько процессорного времени съедают боты и сколько мы сэкономили

Хостинг ограничивает сайты за процессорное время, а не за число ботов. Теперь модуль меряет его сам, и на дашборде видно, сколько секунд CPU ушло на людей, сколько на роботов и сколько защита сэкономила.

Когда хостинг пишет «высокая нагрузка», он имеет в виду процессорное время: у Beget это CP, у других свои названия, но суть одна. Число ботов в журнале такому письму ничего не противопоставишь. Нужна та же величина, что видит хостинг. Теперь она у нас есть.

Что меряет модуль

Модуль запускается первой строкой сайта и с версии 1.4.0 дорабатывает последней: в конце каждого запроса он спрашивает у PHP, сколько процессорного времени, сколько времени ответа и сколько памяти ушло именно на этот запрос. Замер стоит доли миллисекунды. Отдельных запросов к нам нет: модуль копит замеры в локальном кэше и раз в минуту прикладывает сводку к обычному запросу за решением.

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

Что показывает кабинет

На дашборде появилась карточка «Нагрузка на сервер»:

  • процессорное время по часам или дням, отдельно люди, проверки и блокировки;
  • средняя цена страницы для человека и средний ответ роботу;
  • оценка «без защиты было бы»: каждый заблокированный или отправленный на проверку робот получил бы обычную страницу по средней цене человека; разница и есть сэкономленное время, в секундах и в процентах.

Та же цифра будет в еженедельном отчёте на почту: сколько минут CPU ушло на страницы людям и сколько минут защита сняла с сервера.

Зачем

Спор с хостингом закрывается одной картинкой: вот час до включения защиты, вот час после. И это честная цифра, а не проценты с потолка: она считается из тех же данных, по которым хостинг вводит ограничения.

Общую загрузку сервера мы намеренно не показываем. На виртуальном хостинге она отражает весь узел с сотнями чужих сайтов и только вводит в заблуждение. Процессорное время запросов вашего сайта считается точно всегда.

Что нужно сделать

Ничего. Модуль обновляется сам, карточка появится, как только придут первые замеры. Если сбор замеров нужно выключить, в настройках модуля есть параметр 'load_stats' => false.