Получение отчётов о потреблении памяти процессов и пользователей в Linux с помощью smem
Управление памятью, в частности мониторинг ее использования, имеет решающее значение для вашей системы Linux. В различных дистрибутивах Linux существует множество инструментов для мониторинга использования памяти, каждый из которых работает по-своему.
В этой статье рассмотрим инструмент отчетности smem, который может помочь вам отчитываться о потреблении памяти на основе каждого процесса и каждого пользователя в среде Linux.
Как установить Smem
Smem – это инструмент для создания отчетов о памяти из командной строки, который предоставляет пользователю разнообразные отчеты об использовании памяти в системе Linux. Есть одна уникальная особенность в smem, в отличие от других традиционных инструментов отчетов о памяти, он сообщает PSS (Proportional Set Size), более значимое представление использования памяти приложениями и библиотеками в виртуальной памяти.
Существующие традиционные инструменты в основном фокусируются на чтении RSS (Resident Set Size), который является стандартным показателем для мониторинга использования памяти в схеме физической памяти, но имеет тенденцию переоценивать использование памяти приложениями.
PSS, с другой стороны, дает разумный показатель, определяя «справедливую долю» памяти, используемую приложениями и библиотеками в схеме виртуальной памяти.
Возможности утилиты smem
- Вывод общего обзора системы
- Вывод списков, а также фильтрация по процессам, связкам или пользователям
- Использование данных из файловой системы /proc
- Настраиваемые колонки списков из нескольких источников данных
- Настраиваемые выходные единицы и проценты
- Легко настраиваемые заголовки и итоги в списках
- Использование снимков данных из зеркал каталогов или сжатых tar-файлов
- Встроенный механизм генерации графиков
- Легкий инструмент захвата, используемый во встроенных системах
Установка Smem в Linux
Чтобы установить 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]
Отображение статистики использования памяти в Linux
Чтобы просмотреть отчет об использовании памяти во всей системе всеми пользователями, выполните следующую команду:
sudo smem
Когда обычный пользователь запускает smem, он отображает использование памяти процессами, которые были запущены пользователем, процессы расположены в порядке возрастания PSS .
Посмотрите на приведенный ниже результат использования памяти процессами, запущенными пользователем tecmint
в моей системе:
smem
При использовании smem можно вызывать множество опций, например, для просмотра потребления памяти всей системой, выполните следующую команду:
sudo smem -w
Вывести использование памяти каждым пользователем в Linux
Чтобы просмотреть использование памяти для каждого пользователя, выполните следующую команду:
sudo smem -u
Вы также можете вывести статистику использования памяти по сопоставлениям следующим образом:
sudo smem -m
Вывести использование памяти по каждому процессу в Linux
Чтобы отфильтровать вывод по имени процесса, используйте опцию -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