Проверяет умение локализовать источник отказов под нагрузкой, отделяя сетевые сбои от проблем внутри приложения по метрикам, логам и поведению системы.
Под нагрузкой отказ может возникать на разных уровнях: сеть, балансировщик, приложение, база данных. Чтобы понять, где именно проблема, нужно смотреть на систему как на цепочку и измерять каждый её участок отдельно. Сетевые проблемы обычно проявляются на уровне соединений и пакетов, а проблемы приложения — на уровне обработки запросов, потоков, памяти и блокировок.
Сначала проверяют сетевые метрики и доступность узлов, затем смотрят распределённые трейсы и профили приложения. Полезно сравнить поведение под нагрузкой и без неё, а также изолировать компоненты: например, обратиться к сервису напрямую, минуя балансировщик.
# пример проверки сетевых метрик
ss -s
ping -c 10 backend-host
curl -w "%{time_connect} %{time_starttransfer} %{time_total}\n" -o /dev/null -s http://backend/api
# пример профилирования приложения (Node.js)
node --prof app.js
node --prof-process isolate-*.log > profile.txtЕсли сетевые метрики в норме, а задержка и ошибки появляются внутри сервиса, дальше анализируют код, пулы соединений, работу с БД и настройки рантайма. Такой подход позволяет не гадать, а последовательно исключать слои.
Итог: разделение диагностики по слоям помогает быстро понять, где искать причину — в сети или в приложении, и сокращает время восстановления под нагрузкой.
Уровень
Рейтинг:
4
Сложность:
6
Навыки
Testing
Networks
Ключевые слова
Подпишись на Node.js Developer в телеграм