Обновить
2
0

Пользователь

Отправить сообщение
Мне кажется тут может помочь Off-CPU анализ. Можно попробовать подписаться на евенты планировщика с помощью perf и отслеживать когда треды уходят в ожидание:

echo 1  | sudo tee /proc/sys/kernel/sched_schedstats # надо разрешить сбор статов планировщика

sudo perf record -e sched:sched_stat_sleep -e sched:sched_switch -e sched:sched_process_exit -g --call-graph=dwarf -- ./a.out # a.out -- ваш бинарь, скомпиленный с дебаг символами (иначе стека не увидим)

# Ждём пока программа завершиться и perf выплюнет perf.data файл
sudo perf report # запускается tui'шка в которой можно посмотреть где эти евенты происходили


Легче конечно получить FlameGraph и по нему глянуть. Как это сделать можно глянуть тут. Или с помощью bcc/tools/offcputime.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность