2012-03-27 5 views
2

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

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

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

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

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

+1

'top' или' ps'? – Zenon

+0

К сожалению, 'top' и' ps' я имею в наличии ограниченную информацию и имею несколько вариантов. Я предполагаю, что это связано с тем, что они являются частью пакета busybox. – rkyser

+0

Итак, вы внедрили свой собственный rusage, но только для использования ЦП? –

ответ

1

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

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

+0

Я перекрестно скомпилировал nmon и могу запустить его в интерактивном режиме, но по какой-то причине он сразу же выходит в режиме захвата. Это команда, которую я запускаю: 'arm-nmon -F /tmp/nmon.cap -s1 -c600' – rkyser

+0

Не знаете, в чем проблема. Я сам использовал его только в AIX. –

0

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

+0

Я думал, что SystemTap был скорее инструментом для отслеживания - как LTTng. Охватывает ли это необходимые данные для показа пользовательского и центрального использования ЦП на поток? – rkyser

Смежные вопросы