Выбор ответа Senior Производительность и профилирование обновлено
Медленно, а CPU свободен
Вопрос
Сервис отвечает медленно, загрузка CPU 15%, on-CPU профиль ничего интересного не показывает. Куда смотреть?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: На ожидание: off-CPU профиль, блокировки, I/O, зависимости. On-CPU профиль видит только время, когда поток выполняется на процессоре.
Варианты ответа
- Увеличить число ядер и лимит CPU пода
- Профиль врёт при низкой загрузке, нужно снять его ещё раз под нагрузкой
- Снизить уровень логов, запись в stdout тормозит ответы
- На ожидание: off-CPU профиль, блокировки, I/O, зависимостиправильный ответ
Разбор
On-CPU профиль видит только время, когда поток выполняется на процессоре. Если запросы ждут базу, блокировку, свободное соединение или сеть, процессор простаивает. Off-CPU анализ (например, offcputime из BCC), профили блокировок (mutex, block в Go) и трейсы показывают это ожидание. Больше ядер не помогут ждать быстрее.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.