Как диагностировать нестабильные systemd-сервисы!
Если система в целом работает корректно, но отдельные сервисы периодически падают или перезапускаются, диагностику удобно начинать со
Сервисы в ошибочном состоянии:
Показывает юниты, завершившиеся с ошибкой — базовая точка входа.
Перезапуски конкретного сервиса:
Позволяет быстро выявить циклические рестарты и их частоту.
Автоматические рестарты
Помогает обнаружить сервисы, которые
Количество рестартов:
Счётчик рестартов с момента запуска
Причина остановки:
Даёт максимальный контекст ошибки и системные пояснения.
Проверка
Актуально, если сервис завершается без явных ошибок в собственных логах.
Конфигурация сервиса:
Позволяет проверить параметры рестарта,
🔥 Такой разбор покрывает большинство случаев нестабильной работы systemd-сервисов без дополнительных инструментов.
➡️ DevOps Ready | #практика
Если система в целом работает корректно, но отдельные сервисы периодически падают или перезапускаются, диагностику удобно начинать со
systemd и его журналов.Сервисы в ошибочном состоянии:
systemctl --failed
Показывает юниты, завершившиеся с ошибкой — базовая точка входа.
Перезапуски конкретного сервиса:
journalctl -u nginx --no-pager -g 'Starting|Stopped|Failed'
Позволяет быстро выявить циклические рестарты и их частоту.
Автоматические рестарты
systemd:journalctl -b | grep -Ei 'systemd\[1\].*(restart|Restart)'
Помогает обнаружить сервисы, которые
systemd регулярно перезапускает.Количество рестартов:
systemctl show nginx -p NRestarts
Счётчик рестартов с момента запуска
systemd. Рост значения обычно указывает на нестабильность сервиса.Причина остановки:
journalctl -xeu nginx
Даёт максимальный контекст ошибки и системные пояснения.
Проверка
OOM-killer:journalctl -k -b | grep -Ei 'oom|oom-kill|killed process'
Актуально, если сервис завершается без явных ошибок в собственных логах.
Конфигурация сервиса:
systemctl cat nginx
Позволяет проверить параметры рестарта,
drop-in override’ы, зависимости и условия запуска.Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5🔥5
Эти базовые команды закрывают весь путь от инициализации директории до валидации конфигов, применения плана, проверки output‑значений и безопасного удаления ресурсов. Достаточно выучить их, чтобы уверенно крутить типичный Dev/Stage/Prod цикл без бесконечного гуглинга синтаксиса.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤5👍5🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь собраны материалы о том, как работает ядро Linux: управление памятью, планировщик задач, драйверы устройств, файловые системы и взаимодействие с железом. Документация показывает внутренние механизмы системы, а не только внешнее поведение.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥7🤝6❤2
В типичном
CI/CD непонятно, на каком шаге пайплайн реально тратит время: сборка, тесты, деплой или миграции. Отдельный job, который логирует длительность этапов, помогает быстро увидеть узкие места и понять, что оптимизировать в первую очередь.В этом посте:
• Добавляем вокруг этапов обёртку, которая меряет время выполнения и пишет логи;
• Логируем только «долгие» шаги, которые превышают заданный порог (например, 30 или 60 секунд);
• Отправляем результаты в общий лог/мониторинг, чтобы строить графики и алерты по «медленным» job-ам.
Такой
job превращает пайплайн из «чёрного ящика» в понятную шкалу времени, где видно, на каком шаге вы теряете минуты и деньги.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤5👍4
Автоматизировать всё подряд — плохая затея. Чтобы не тратить время впустую, нужно начинать с задач, которые дают максимум профита при минимуме рисков для инфраструктуры.
В этом посте:
• Разбираем формулу выбора задач: частота повторения vs риск ошибки.
• Пишем безопасные «скрипты-информаторы» для мониторинга ресурсов;
• Внедряем линтеры и валидаторы в CI/CD для отлова багов на взлете;
• Создаем удобные Makefile-обертки для сложных консольных команд;
Это пошаговый план, который поможет превратить рутинный хаос в стабильную и предсказуемую систему.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍5🔥5
Нагружаем приложение и смотрим, как оно себя ведёт!
Сегодня прогоняем тестовое веб‑приложение через обычную нагрузку и простейшую «атаку», чтобы увидеть разницу по метрикам и логам. Всё через терминал и пару утилит:
Сначала замерим «здоровое» состояние с равномерной нагрузкой:
За 30 секунд получим средний
Теперь устроим «атаку» с одного IP — резкий всплеск запросов:
Следим в это время за приложением:
В логах увидишь частые обращения к одному эндпоинту и рост
Можно вынести это в простой скрипт:
🔥 Так удобно быстро смотреть, где приложение начинает «сыпаться» под нагрузкой: код, база или сеть.
➡️ DevOps Ready | #практика
Сегодня прогоняем тестовое веб‑приложение через обычную нагрузку и простейшую «атаку», чтобы увидеть разницу по метрикам и логам. Всё через терминал и пару утилит:
hey/ab для нагрузки и curl для имитации агрессивного клиента.Сначала замерим «здоровое» состояние с равномерной нагрузкой:
hey -z 30s -c 20 http://localhost:8080/
За 30 секунд получим средний
RPS, latency и процент ошибок. Это будет базовый уровень, с которым будем сравнивать.Теперь устроим «атаку» с одного IP — резкий всплеск запросов:
hey -z 30s -c 200 http://localhost:8080/login
Следим в это время за приложением:
tail -f app.log
htop
В логах увидишь частые обращения к одному эндпоинту и рост
5xx/4xx, а по ресурсам — скачок CPU/памяти.Можно вынести это в простой скрипт:
load_test() {
hey -z 20s -c 30 "$1"
hey -z 20s -c 200 "$1"
}
load_test "http://localhost:8080/login"Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍5❤4
Знали, что «битый» YAML-файл может уронить весь CI/CD пайплайн еще до того, как начнется деплой?
Лишний пробел или неверный отступ в манифестах
Самый быстрый способ проверить файл без установки лишнего софта — встроенные возможности
Если файл валиден, команда ничего не выведет, если есть ошибка, то ты получишь точную строку и номер символа.
Для продвинутой проверки с учетом лучших практик используй специализированный линтер:
Это подсветит не только ошибки синтаксиса, но и нарушение стилистики (слишком длинные строки, лишние пробелы в конце).
Добавь проверку в pre-commit хук своего репозитория, чтобы ошибки вообще не попадали в Git:
🔥 Маленькая проверка на входе экономит десятки минут ожидания «красного» пайплайна в
➡️ DevOps Ready | #совет
Лишний пробел или неверный отступ в манифестах
Kubernetes или Ansible это классическая причина падений. Чтобы не тратить время на запуск тяжелых пайплайнов ради проверки синтаксиса, стоит использовать легковесные утилиты для локальной валидации.Самый быстрый способ проверить файл без установки лишнего софта — встроенные возможности
Python:python3 -c 'import yaml, sys; yaml.safe_load(sys.stdin)' < deployment.yaml
Если файл валиден, команда ничего не выведет, если есть ошибка, то ты получишь точную строку и номер символа.
Для продвинутой проверки с учетом лучших практик используй специализированный линтер:
yamllint -d relaxed config.yaml
Это подсветит не только ошибки синтаксиса, но и нарушение стилистики (слишком длинные строки, лишние пробелы в конце).
Добавь проверку в pre-commit хук своего репозитория, чтобы ошибки вообще не попадали в Git:
- repo: https://github.com/adrienverge/yamllint.git
rev: v1.33.0
hooks:
- id: yamllint
GitLab или GitHub.Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤5🔥5