Любое ПО может нагружать процессор и память сервера во время работы. Если после установки BitNinja вы столкнулись с проблемами или замедлением работы приложений, рекомендуем настроить для инструмента ограничения по использованию CPU и RAM. Почти все действия можно выполнить через панель управления admin.bitninja.io. Если не уверены, какие настройки BitNinja будут оптимальными, рекомендуем на начальном этапе установить минимальные параметры.
Стоит сразу отметить, что нельзя ограничить работу модулей WAF, HAproxy, BitNinja Dispatcher и BitNinja-mq. Поэтому перед их включением убедитесь, что ваш сервер справится с дополнительной нагрузкой.
Как ограничить потребление RAM
Выполнить ограничение антивируса. Для этого нужно найти его настройки в Личном кабинете и установить допустимый лимит. Перейдите:
Конфигурация → Обнаружение вредоносных программ → Предел памяти в МБ
Минимально возможное значение — 600 Мб, по умолчанию — 800 Мб.

Если раздел «Предел памяти в МБ» не отображается, то необходимо включить опцию Все настройки рядом со строкой поиска.
Отключить использования ресурсов агентом AI при сканировании. Для этого при использовании AI нужно включить облако в настройках:
Конфигурация → Обнаружение вредоносных программ → Включить или отключить функцию AI Active Scanner
Конфигурация → Обнаружение вредоносных программ → Включить или отключить функцию сканера ИИ

Ограничить модуль Shogun (Сёгун). Найдите настройки в конфигурации расширенных модулей и установите допустимый лимит: минимальное возможное значение — 300 Мб, по умолчанию — 600 Мб.
Конфигурация → Сёгун → Предел памяти для этого модуля

Выполнить ограничение для модуля Certificate Miner (сертификат майнер). Найдите настройки в конфигурации расширенных модулей и установите допустимый лимит: минимально возможное значение — 100 Мб, по умолчанию — 2048 Мб.
Конфигурация → Защита на https → Лимит памяти для сертификата майнер (MB)

Как ограничить использование CPU
Для ограничения ресурса процессора BitNinja использует механизм Cgroup, который по умолчанию есть в современных ОС на актуальных версиях ядра. Если нужно убедиться, что он доступен, например, в случае, если ваша ОС на сервере уже не актуальна, то зайдите на нужный сервер по SSH и проверьте наличие Cgroup командой:
grep cgroup /proc/filesystemsВывод должен содержать nodev cgroup (поддерживается только 1 версия) и/или nodev cgroup2 (поддерживается только 2 версия).
Если сервер поддерживает только Cgroup V1, проверьте, существуют ли файлы cpu.cfs_period_us или cpu.cfs_quota_us:
- В Debian — в каталоге
/sys/fs/cgroup. - В CentOs или Redhat — в каталоге
/sys/fs/cgroup/cpu*
Если сервер поддерживает только Cgroup V2, проверьте, существует ли файл cgroup.controllers. Для этого выполните команду:
cat /sys/fs/cgroup/cgroup.controllersВывод должен быть следующим:

После этого можно ограничить использование CPU в Личном кабинете BitNinja. Минимальное возможное значение — 60%, по умолчанию —100%, то есть без ограничений.
Конфигурация → Система → Использование ресурсов

Убедиться, что ограничения работают, можно с помощью подключения через SSH и логи BitNinja.
По логам можно выполнить команду поиска подстроки через grep:
grep 'General CPU limit set to' /var/log/bitninja/main.logВ выводе должна быть строка об изменении лимита использования CPU с указанием процентов, например:
General CPU limit set to [60%].Если же каталогов для Cgroup не существует, то нужно изменить параметры загрузки ядра:
# Добавляем опцию при загрузке
echo "GRUB_CMDLINE_LINUX=systemd.unified_cgroup_hierarchy=false" | sudo tee /etc/default/grub.d/cgroup.cfg
# Перегенерируем grub
update-grubЕсли все выполнено правильно, то в выводе после update-grub появятся строки о добавлении файла /etc/default/grub.d/cgroup.cfg.
Пример вывода:
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/cgroup.cfg'
Sourcing file `/etc/default/grub.d/init-select.cfg'После изменения параметров загрузки перезагрузите сервер
rebootДобавление дополнительных параметров можно проверить в логах загрузки ядра через dmesg и grep: в выводе появится строка о добавлении опции systemd.unified_cgroup_hierarchy:
dmesg | grep 'Kernel command line'Далее можно изменить настройку по ограничению CPU в личном кабинете BitNinja, как мы указывали выше. После проведения настроек понаблюдайте за работой сервера. Если работа ПО BitNinja с минимальными настройками вас не устроит, то их всегда можно изменить в Личном кабинете.