Linux Labs

Система изнутри: ресурсы, ядро, процессы / Ступень 4 из 12

ulimit и sysctl: потолки системы

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 8 из 10 · лаба · 25 минсредняя

Служба падает под нагрузкой

Служба уведомлений держит по соединению на каждого подписчика. Подписчиков стало триста — и она то работает, то нет, хотя коллега уже что-то поправил. Найди причину и почини так, чтобы служба держала тысячу подписчиков и после перезапуска.

Ситуация

Служба lab-notify — приложение notify-hub — рассылает уведомления внутреннего портала. Каждая открытая страница портала подписывается на /events и держит соединение со службой. Пока подписчиков было несколько десятков, служба работала. Сегодня их около трёхсот, и служба то работает, то нет: curl http://127.0.0.1:8090/health через раз отвечает Connection refused. Вчера коллега уже поправил настройки службы — не помогло.

Подписчиков на машине изображает служба lab-subscribers: она держит 300 подписок и переподключает оборванные.

Задача

  1. lab-notify держит 1000 подписчиков разом: отвечает на curl http://127.0.0.1:8090/health и не перезапускается. Код приложения прежний.
  2. Настройку службы меняй в drop-in. Юнит из пакета /usr/lib/systemd/system/lab-notify.service не правь и не подменяй копией: следующее обновление пакета его перезапишет.
  3. systemd-analyze verify lab-notify.service ничего не печатает.
  4. Служба держит ту же нагрузку и после перезапуска: sudo systemctl restart lab-notify.

Интернета на машине нет, всё нужное уже установлено. Команды администратора запускай через sudo.

Лаба · самостоятельно

Команды в этой лабе не даны: набирай их в терминале сам. Цели проверяются на машине после каждой команды.

Цели

0 из 4
  • lab-notify держит 1000 подписчиков, отвечает на /health и не перезапускается; код приложения прежний — ещё не выполнена
  • Настройка лежит в drop-in службы, юнит из пакета прежний, процесс запущен с этой настройкой — ещё не выполнена
  • systemd-analyze verify lab-notify.service ничего не печатает — ещё не выполнена
  • Служба держит ту же нагрузку и после перезапуска — ещё не выполнена
Ctrl+Enter
Запустит машину node1 · Ubuntu 24.04

Машина запускается

Подсказки

0 из 3

Цели лабы

0 из 4
  • lab-notify держит 1000 подписчиков, отвечает на /health и не перезапускается; код приложения прежний — ещё не выполнена
  • Настройка лежит в drop-in службы, юнит из пакета прежний, процесс запущен с этой настройкой — ещё не выполнена
  • systemd-analyze verify lab-notify.service ничего не печатает — ещё не выполнена
  • Служба держит ту же нагрузку и после перезапуска — ещё не выполнена
node1 Ubuntu 24.04

Цели лабы

0 из 4
  • lab-notify держит 1000 подписчиков, отвечает на /health и не перезапускается; код приложения прежний — ещё не выполнена
  • Настройка лежит в drop-in службы, юнит из пакета прежний, процесс запущен с этой настройкой — ещё не выполнена
  • systemd-analyze verify lab-notify.service ничего не печатает — ещё не выполнена
  • Служба держит ту же нагрузку и после перезапуска — ещё не выполнена
Загрузка…