2010-04-04 4 views
0

Как я могу получить статистику сбоев страниц из ядра для моего приложения во время его работы? Как насчет других событий, таких как подсчеты между процессорами в узлах SMP или количество контекстных переключателей?Как я могу получить статистику сбоев страниц из ядра

Я хочу считать такие события для различных небольших частей программы.

Спасибо.

ответ

3

Вы захотите использовать инструменты «perf», упакованные с ядром. См. here.

+0

Я уверен, что вы найдете интересный материал, смотрящий на PAPI, Likwid или даже Oprofile. – claf

4

procfs записывает часть этой информации, но (я считаю) не все, и определенно не «для разных мелких деталей», а только для процесса в целом. Я сомневаюсь, что записи ядра, например. контекстные переключатели или ошибки страниц «для различных мелких деталей» в любом месте. Возможно, вы можете сделать снимки применимых псевдофайлов /proc в начале и в конце каждой «маленькой части» и принять разницу - для некоторых приложений (которые не ветвятся каждый раз в любое время), которые могут быть приемлемой заменой ,

+0

, который записи из procfs я могу использовать? есть ли статистика миграции cpu и cntx-переключателей? – osgx

+0

Да, я могу сделать smth (например, чтение файла) между измеренными частями. – osgx

+0

есть счетчик для cntx-переключателя: http://lxr.linux.no/linux+v2.6.33/kernel/sched.c#L2962 'long long nr_context_switches()' – osgx