Genesis-proc-controller
Утилита служащая для контроля процессов на хосте. Цель не допустить перегрузки хоста и потери доступа к sshd сервису.
Принцип работы - проверяет значение load_avg и в случае превышения установленного значения, в первый раз перезапускает бегущие контейнеры, ждет успешного поднятия контейнеров и снижения нагрузки, в случае если нагрузка остается останавливает все контейнеры.
Installing
Genesis при настройке сервера сам выполнит установку, по следующему алгоритму. Краткое введение в минимальную настройку, необходимую для запуска. Обратите внимание, необходимо указать gitlab-token и tag/версию проекта.
cd ~ ; rm -rf genesis-proc-controller*
python3 -m pip install genesis-proc-controller=={TAG} --index-url https://{username}:{token}@gl.sbdagroup.com/api/v4/projects/2037/packages/pypi/simple --user
wget --header "PRIVATE-TOKEN: {YOUR_TOKEN}" "https://gl.sbdagroup.com/api/v4/projects/2037/repository/archive?sha={TAG}" -O "genesis-proc-controller-{TAG}.tar.gz"
tar xzf genesis-proc-controller*tar.gz
cd genesis-proc-controller*/
# echo 'MAX_LOAD_AVG_1=20.0' > /etc/default/atop # Если необходимо сменить настройки по умолчанию
make install
После запуска демона, события будут записываться в syslog. Прочитать логи можно командой:
journalctl -u genesis-proc-controller.service
Configuration
Список переменных окружения. Переменные окружения могут быть переданы как аргументы для вызова или помещены в файл /etc/default/genesis-proc-controller
MAX_LOAD_AVG_1=10.0 # Максимальное значение LOAD_AVG_1 после которого будет рестарт сервисов.
DELAY_RUNTIME_LOOP=1.0 # Задержка основного цикла.
DELAY_CONTAINER_RESTART=600.0 # Задержка до остановки сервисов, после первого рестарта запущенных сервисов.
В случае необходимости изменения значений по умолчанию, их необходимо изменять в файле /etc/default/genesis-proc-controller
после чего необходимо перезапустить сервис командой:
systemctl restart genesis-proc-controller.service