Найти размер страницы и количество страниц процесса в Linux

Учитывая PID процесса, работающего в Linux (последнее ядро), как мне узнать:

  1. Количество страниц, которые он использует
  2. Размер каждой используемой страницы (4 КБ, 2 МБ или 1 ГБ)

Это для архитектуры x86-64.

3 ответа

Размер страницы является общесистемным и может быть найден с getconf команда

getconf PAGESIZE

Инструмент mem_usage.py может предоставить более подробную информацию об использовании памяти процессами.

Количество страниц, которые он использует

awk '{ print $24 }' /proc/[pid]/stat

или же:

awk '{ print $2 }' /proc/[pid]/statm

Согласно man proc, это количество страниц, которые процесс имеет в реальной памяти. Также взгляните на procstat.c для отображения статистики proc в удобочитаемом формате.

В зависимости от того, насколько подробной должна быть информация, которую вы хотите, вы можете выбрать один из следующих вариантов:

  • /proc/pid/statm: Предоставляет информацию об использовании памяти, измеряемую в страницах.
  • /proc/pid/status: Предоставляет большую часть информации от /proc/pid/statm, но легче читать.

Проверьте man-страницу для proc-файлов для полной документации того, что означают различные столбцы.

Другие вопросы по тегам