Ответ вслух Senior Производительность спрашивают часто обновлено

Сервер тормозит: методика

Вопрос

Тебе говорят: «прод тормозит», больше ничего. Как будешь разбираться на Linux-сервере?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Сначала уточняю симптом: что именно медленно, с какого времени, что менялось: деплой, рост трафика, крон.

Что должно прозвучать в ответе

  • Уточнить симптом и время: что медленно, с какого момента, что менялось (деплой, трафик)

  • Методика USE: для CPU, памяти, дисков и сети смотрю загрузку, очередь и ошибки

  • `uptime`, `vmstat 1`, `mpstat`: очередь CPU, своп, iowait, steal, перекос по ядрам

  • `iostat -xz`, `pidstat -d`: задержки дисков и кто пишет; `free`, `dmesg`: память и OOM

  • Нашёл процесс: `pidstat`, `strace -c`, `perf top`, лимиты в `/proc/<pid>/limits`

  • Сверяю с мониторингом и историей (`sar`), исправляю причину и фиксирую выводы

Что могут спросить следом

  • Что сделаешь, если всё в норме, а медленно?
  • Чем perf лучше strace на проде?
  • Как понять, что виноват сосед по гипервизору?

Разбор

Сначала уточняю симптом: что именно медленно, с какого времени, что менялось: деплой, рост трафика, крон. Потом иду по методике USE по ресурсам. uptime: load и тренд. dmesg -T | tail: OOM killer, ошибки диска. vmstat 1: r больше ядер значит нехватка CPU, ненулевые si/so значит своп, высокий wa значит диск, st значит гипервизор. mpstat -P ALL: не упёрлось ли одно ядро. iostat -xz 1: await и очередь дисков, pidstat -d покажет, кто пишет. free -m: available, а не free. Найдя ресурс и процесс, смотрю внутрь: pidstat по потокам, strace -c для системных вызовов, perf top для горячих функций, лимиты дескрипторов. Если на хосте всё чисто, проблема дальше: база, внешнее API, сеть, и тогда иду по трейсам и метрикам приложения. В конце сверяю с историей sar и графиками, чтобы найти начало, и чиню причину, а не перезагружаю.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме