Вопрос или проблема
Я мониторю производительность встроенного устройства на базе ARM, которое работает на дистрибутиве poky linux (из проекта Yocto), содержащем систему сборки OpenEmbedded. Мне нужно получить потребление МГц (циклов ЦП) и объем используемой ОЗУ для любого процесса, запущенного в системе. Хотя утилита top
позволяет мне видеть процент использования ЦП (что позволяет оценить МГц ЦП), она дает только размер виртуальной памяти (VSZ), используемой процессом, но не физическую память, использованную.
Существует ли способ получить необходимую мне информацию?
Я думаю, что “циклы” в общем бессмысленны (это было так, когда у ЦП не было кэша и один ядро). Более полезно “время простоя” — и сколько ЦП потребляют отдельные процессы (и опыт в данной области, чтобы понять, что “разумно”).
htop или top полезны — возможно, вам также стоит посмотреть на /proc/loadavg и /proc/meminfo.
htop
Вот список, объясняющий, что означает каждая колонка.
- PID: Идентификационный номер процесса.
- USER: Владельцем процесса.
- PR: Приоритет процесса. Чем меньше число, тем выше
приоритет. - NI: Значение nice процесса, которое влияет на его приоритет.
- VIRT: Сколько виртуальной памяти использует процесс.
- RES: Сколько физической ОЗУ использует процесс, измеряется в
килобайтах. - SHR: Сколько Shared memory использует процесс.
- S: Текущий статус процесса (зомби, спящий, работающий,
непрерывно спящий или отслеживаемый). - %CPU: Процент времени процессора, используемого процессом.
- %MEM: Процент физической ОЗУ, используемой процессом.
- TIME+: Сколько времени процессор использовал процессом.
- COMMAND: Название команды, которая запустила процесс.
Следуя комментарию Жиля (htop не показывает больше информации, чем top, он просто показывает это более красиво), с чем я не соглашусь, в моем дистрибутиве htop показывает гораздо больше информации, чем top:
Ответ или решение
Для оценки использования оперативной памяти (RAM) и потребления ресурсов процессора на встраиваемом устройстве с ARM-архитектурой, работающим под управлением дистрибутива Poky Linux (Yocto Project), вы можете воспользоваться несколькими инструментами и методами.
Измерение использования ресурсов
-
Использование утилиты
htop
:
htop
представляет собой более удобный и наглядный интерфейс для мониторинга процессов по сравнению сtop
. Вhtop
вы можете увидеть следующие важные параметры:- PID: Идентификатор процесса.
- USER: Владелец процесса.
- VIRT: Объем виртуальной памяти, используемой процессом.
- RES: Объем физической оперативной памяти, используемой процессом (измеряется в килобайтах).
- SHR: Объем общей памяти, используемой процессом.
- %CPU: Процент времени процессора, используемого процессом.
- %MEM: Процент физической оперативной памяти, используемой процессом.
- TIME+: Общее время, в течение которого процесс использовал процессор.
- COMMAND: Команда, которая запустила процесс.
Для установки
htop
, используйте команду:sudo apt-get install htop # или соответствующий пакетный менеджер на вашем дистрибутиве
-
Использование утилиты
top
:
Хотяhtop
предоставляет больше информации в удобном формате,top
также является ценным инструментом. Вы можете запустить его на вашем устройстве, и он будет показывать как процент использования CPU, так и размер виртуальной и физической памяти. -
Проверка файловой системы
/proc
:- /proc/meminfo: Этот файл содержит информацию о общей и свободной памяти, используемой системой. Вы можете просмотреть его с помощью:
cat /proc/meminfo
- /proc/loadavg: Этот файл дает информацию о средней загрузке процессора за последние 1, 5 и 15 минут. Это может помочь вам оценить нагрузку на систему.
- /proc/meminfo: Этот файл содержит информацию о общей и свободной памяти, используемой системой. Вы можете просмотреть его с помощью:
-
Профилирование процессов с помощью
pidstat
:
pidstat
, входящий в пакетsysstat
, позволяет получить более детализированную информацию о использовании CPU и RAM для конкретных процессов. Для установки:sudo apt-get install sysstat
Используйте команду:
pidstat -r -p <PID> 1
где
<PID>
— это идентификатор процесса, который вас интересует. Это даст вам информацию о физическом использовании памяти.
Оценка частоты процессора и загрузки
Как было отмечено, расчет использования процессора в МГц может быть менее информативным из-за кеширования и многоядерной архитектуры современных процессоров. Вместо этого полезно рассматривать время простоя и процент CPU, использованный разными процессами.
-
Измерение загрузки процессора:
Используяtop
илиhtop
, вы можете наблюдать значение%CPU
, которое дает представление о том, какую долю ресурсов процессора использует каждый процесс. -
Анализ времени активности процессов:
Вhtop
иtop
предоставляется возможность отслеживать, сколько времени каждый процесс активен, что позволяет получать лучшее представление о паттернах нагрузки.
Заключение
Для получения полной информации о потреблении ресурсов на вашем встраиваемом устройстве с ARM, рекомендуем использовать комбинацию htop
, top
, и анализ файлов в /proc
. Эти инструменты предоставят вам доступ ко всем необходимым метрикам, чтобы провести детальный анализ использования CPU и RAM ваших процессов.