Инструменты использования процессора Linux - PullRequest
2 голосов
/ 27 марта 2012

Справочная информация Я написал инструмент для отслеживания использования ЦП для каждого потока.Вывод инструментов представляет собой двоичный файл, который я могу добавить в свою утилиту синтаксического анализа, которую я написал.А вывод утилиты синтаксического анализа представляет собой CSV-файл, который я могу импортировать в Excel для составления графиков симпатичных графиков загрузки процессора процессами / потоками.

Этот инструмент захвата использования процессора работает на встроенной платформе ARM с ядром Linuxна основании 2.6.35.3.Тем не менее, я был обеспокоен тем, чтобы сделать инструмент легким весом.Я не хотел, чтобы он сохранялся непосредственно в файле CSV, чтобы минимизировать время обработки и размер файла захваченных данных.

Вопрос Инструмент работает, но ямне интересно, если я прошел долгий путь вокруг проблемы?Уже есть инструмент, который делает это (или что-то в этом роде)?

Вы, наверное, удивляетесь, почему меня волнует, если я уже создал инструмент, который работает.Ну, это не так легко, как хотелось бы.Это занимает около 10% загрузки процессора.Для сравнения, top занимает всего около 1% (максимум).

Обновление Я решил продолжить использование моего инструмента.По крайней мере, пока лучшее решение не станет доступным.Я смог сбрить пару процентных пунктов, используя open() вместо fopen() на /proc/stat.Я также использую read() вместо fgets().

Ответы [ 2 ]

1 голос
/ 27 марта 2012

У IBM есть инструмент под названием nmon , который делает то же самое (для AIX и Linux): согласно документации IBM, загрузка процессора составляет ~ 2%. Вы можете посмотреть на это.

Сравнение nmon с вашим инструментом может дать вам четкое представление о производительности вашей программы и о том, как вы можете улучшить захват csv.

0 голосов
/ 28 марта 2012

Это может быть немного крутой кривой обучения, но вы можете посмотреть SystemTap: http://sourceware.org/systemtap/

...