Шаг 8 из 10 · лаба · 25 мин
Служба падает под нагрузкой
Служба уведомлений держит по соединению на каждого подписчика. Подписчиков стало триста — и она то работает, то нет, хотя коллега уже что-то поправил. Найди причину и почини так, чтобы служба держала тысячу подписчиков и после перезапуска.
Ситуация
Служба lab-notify — приложение notify-hub — рассылает уведомления внутреннего портала. Каждая открытая
страница портала подписывается на /events и держит соединение со службой. Пока подписчиков было несколько
десятков, служба работала. Сегодня их около трёхсот, и служба то работает, то нет:
curl http://127.0.0.1:8090/health через раз отвечает Connection refused. Вчера коллега уже поправил
настройки службы — не помогло.
Подписчиков на машине изображает служба lab-subscribers: она держит 300 подписок и переподключает
оборванные.
Задача
lab-notifyдержит 1000 подписчиков разом: отвечает наcurl http://127.0.0.1:8090/healthи не перезапускается. Код приложения прежний.- Настройку службы меняй в drop-in. Юнит из пакета
/usr/lib/systemd/system/lab-notify.serviceне правь и не подменяй копией: следующее обновление пакета его перезапишет. systemd-analyze verify lab-notify.serviceничего не печатает.- Служба держит ту же нагрузку и после перезапуска:
sudo systemctl restart lab-notify.
Интернета на машине нет, всё нужное уже установлено. Команды администратора запускай через
sudo.
Лаба · самостоятельно
Команды в этой лабе не даны: набирай их в терминале сам. Цели проверяются на машине после каждой команды.
Цели
0 из 4-
lab-notify держит 1000 подписчиков, отвечает на /health и не перезапускается; код приложения прежний — ещё не выполнена
-
Настройка лежит в drop-in службы, юнит из пакета прежний, процесс запущен с этой настройкой — ещё не выполнена
-
systemd-analyze verify lab-notify.service ничего не печатает — ещё не выполнена
-
Служба держит ту же нагрузку и после перезапуска — ещё не выполнена
Машина запускается
Подсказки
0 из 3Цели лабы
0 из 4-
lab-notify держит 1000 подписчиков, отвечает на /health и не перезапускается; код приложения прежний — ещё не выполнена
-
Настройка лежит в drop-in службы, юнит из пакета прежний, процесс запущен с этой настройкой — ещё не выполнена
-
systemd-analyze verify lab-notify.service ничего не печатает — ещё не выполнена
-
Служба держит ту же нагрузку и после перезапуска — ещё не выполнена
Цели проверяются на машине после каждой команды.