Узнайте, какая задача генерирует много контекстных переключений на Linux

Немного веб-, но Вы могли попробовать инструмент: webmin

11
задан 12 October 2010 в 13:43
5 ответов

Ну, довольно интересный случай. Попытайтесь наблюдать watch -tdn1 cat /proc/interrupts. Вы видите какие-либо ценные изменения там?

5
ответ дан 2 December 2019 в 21:48

Контекстное переключение нормально. Процесс присвоен кванты времени, если он заканчивается (или он приостановил вызванный потребностью ресурсов), что он должен сделать это, может позволить процессору пойти.

Это сказало для подсчета, сколько контекстного переключения сделаны (это становится stackoverflow.com ответы), это взяло бы внутреннее расписание ядра () команда для записи в таблицы процессов. Нет такой вещи при программировании собственного ядра, Вы сможете видеть, но это довольно трудно.

1
ответ дан 2 December 2019 в 21:48
  • 1
    Хорошо. Я знаю то, что контекстное переключение и какие последствия оно имеет для производительности системы. Мне просто нужен способ иметь размеры, сколько контекстных переключений сделано к который процессы на Linux. Я уже нашел сырые данные csw счетчиками в/proc / */stats (voluntary_ctxt_switches) –  grzaks 13 October 2010 в 20:18

powertop может сказать Вам, как часто процесс будит ЦП.

0
ответ дан 2 December 2019 в 21:48

Try using

pidstat -wt

The 't' option shows the threads also. It might be a thread who is doing the context switches .

10
ответ дан 2 December 2019 в 21:48

В более новой версии ядра

sudo perf record -e context-switches -a  # record the events

# then ctrl+c

sudo perf report # inspect the result

Это даст вам точный результат о событиях переключения контекста.

И вы можете найти причину, вызвавшую переключение контекста, добавив "-g" "flags (читаемый результат определяется символьной информацией)

sudo perf record -e context-switches -a -g
2
ответ дан 2 December 2019 в 21:48

Теги

Похожие вопросы