Нахождение количества переключений контекста и времени ожидания очереди процесса
Я наблюдаю (основываясь на журналах), что мой (Java) процесс приостанавливает что-то во время выполнения. Мое первое предположение - переключение контекста. Чтобы проверить, я пытаюсь найти (а) количество принудительных переключений контекста, которые выполняет мой процесс, и (б) количество времени, которое процесс проводит в очереди выполнения (готово к запуску, но ожидает планирования).
Есть ли инструменты для сбора этой информации. Я использую ядро 2.6.18 (centos 5) и 2.6.32 (centos6).
1 ответ
Чтобы просмотреть поведение переключения контекста в ОС, используйте:
vmstat 2 200
Когда сервер приложений запускается и вы видите подъем переключения контекста, ваша теория верна. Чтобы увидеть детали вокруг этих переключений контекста, вы можете использовать VisualVM. Это даст вам гораздо более подробное представление о потоках, времени передачи, ожидании и многом другом.