Получение отчётов о потреблении памяти процессов и пользователей в Linux с помощью smem

Управление памятью, в частности мониторинг ее использования, имеет решающее значение для вашей системы Linux. В различных дистрибутивах Linux существует множество инструментов для мониторинга использования памяти, каждый из которых работает по-своему.

В этой статье рассмотрим инструмент отчетности smem, который может помочь вам отчитываться о потреблении памяти на основе каждого процесса и каждого пользователя в среде Linux.

Smem – это инструмент для создания отчетов о памяти из командной строки, который предоставляет пользователю разнообразные отчеты об использовании памяти в системе Linux. Есть одна уникальная особенность в smem, в отличие от других традиционных инструментов отчетов о памяти, он сообщает PSS (Proportional Set Size), более значимое представление использования памяти приложениями и библиотеками в виртуальной памяти.

Существующие традиционные инструменты в основном фокусируются на чтении RSS (Resident Set Size), который является стандартным показателем для мониторинга использования памяти в схеме физической памяти, но имеет тенденцию переоценивать использование памяти приложениями.

PSS, с другой стороны, дает разумный показатель, определяя «справедливую долю» памяти, используемую приложениями и библиотеками в схеме виртуальной памяти.

  • Вывод общего обзора системы
  • Вывод списков, а также фильтрация по процессам, связкам или пользователям
  • Использование данных из файловой системы /proc
  • Настраиваемые колонки списков из нескольких источников данных
  • Настраиваемые выходные единицы и проценты
  • Легко настраиваемые заголовки и итоги в списках
  • Использование снимков данных из зеркал каталогов или сжатых tar-файлов
  • Встроенный механизм генерации графиков
  • Легкий инструмент захвата, используемый во встроенных системах

Чтобы установить Smem в Linux, используйте следующую команду, соответствующую вашему дистрибутиву Linux.

sudo apt install smem   [On Debian, Ubuntu and Mint]
sudo yum install smem         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/smem  [On Gentoo Linux]
sudo apk add smem             [On Alpine Linux]
sudo pacman -S smem           [On Arch Linux]
sudo zypper install smem      [On OpenSUSE]
sudo pkg install smem         [On FreeBSD]

Чтобы просмотреть отчет об использовании памяти во всей системе всеми пользователями, выполните следующую команду:

sudo smem

Когда обычный пользователь запускает smem, он отображает использование памяти процессами, которые были запущены пользователем, процессы расположены в порядке возрастания PSS .

Посмотрите на приведенный ниже результат использования памяти процессами, запущенными пользователем tecmint в моей системе:

smem

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

sudo smem -w

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

sudo smem -u

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

sudo smem -m

Чтобы отфильтровать вывод по имени процесса, используйте опцию -P или –processfilter=«regex» следующим образом:

sudo smem --processfilter="chrome"

Форматирование вывода может быть очень важным, и существуют опции, которые помогут вам оформить отчеты о памяти, мы рассмотрим несколько примеров ниже.

Чтобы отобразить нужные столбцы в отчете, используйте опцию -c или –columns следующим образом:

sudo smem -c "name user pss rss"

Вы можете использовать опцию -p, чтобы представить использование памяти в процентах, как в команде ниже:

sudo smem -p

Команда ниже покажет итоговые значения в конце каждого столбца вывода:

sudo smem -t

Кроме того, существуют опции для графических отчетов, которые вы также можете использовать, и мы рассмотрим их в этом подразделе.

Вы можете создать гистограмму процессов и их значений PSS и RSS, в примере ниже мы создадим гистограмму процессов, принадлежащих пользователю root.

Вертикальная плоскость показывает PSS и RSS процессов, а горизонтальная плоскость представляет каждый процесс пользователя root:

sudo smem --userfilter="root" --bar pid -c"pss rss"

Вы также можете создать круговую диаграмму, показывающую процессы и потребление ими памяти на основе значений PSS или RSS. Приведенная ниже команда выводит круговую диаграмму для процессов, принадлежащих пользователю root, измеряя значения.

Имя –pie означает метку по имени, а опция -s помогает сортировать по значению PSS.

sudo smem --userfilter="root" --pie name -s pss

Существует множество других известных полей, помимо PSS и RSS, используемых для маркировки диаграмм:

Чтобы получить помощь, просто введите smem -h или посетите страницу ввода руководства.

smem -h