Система, которой не хватает физической памяти (ОЗУ), будет работать значительно медленнее, поскольку процессы перемещаются между ОЗУ и подкачкой. Если система Linux начинает работать медленно, одной из первых задач по устранению неполадок является освобождение физической памяти.
Существует несколько инструментов для мониторинга использования памяти в системе Linux, включая вершина , о котором мы уже говорили. Smem — еще один инструмент, используемый для мониторинга использования памяти. Помимо отображения использования памяти процессами в командной строке, smem также может отображать круговую и/или гистограмму с цветовой кодировкой. С помощью smem вы можете легко визуализировать использование памяти в вашей системе Linux.
Установка
В системах Debian и Ubuntu smem можно установить из репозиториев с помощью команды
sudo apt-get install smem
Проверьте использование памяти
Запуск smem от имени непривилегированного пользователя покажет объем памяти, используемый всеми процессами, запущенными с текущим идентификатором пользователя, в порядке PSS от меньшего к большему.
smem
По умолчанию имеется семь столбцов: идентификатор процесса, имя пользователя, команда, используемая для запуска процесса, объем пространства подкачки, выделенного для процесса, а также USS, PSS и RSS.
RSS
RSS (размер резидентного набора) — это общий объем памяти, хранящейся в оперативной памяти для процесса. Сюда входит память, выделенная общим библиотекам, используемым процессом, хотя общие библиотеки могут использоваться несколькими процессами, загружаясь в память только один раз. Таким образом, RSS не является точным представлением памяти, используемой данным процессом.
PSS
PSS (пропорциональный размер набора), с другой стороны, разделяет память, выделенную для общей библиотеки, между использующими ее процессами. Следовательно, если три процесса используют общую библиотеку, содержащую шестьдесят страниц, библиотека внесет двадцать страниц в PSS каждого из процессов. Общий PSS обычно примерно равен общему объему оперативной памяти системы. Однако когда процесс, использующий общую библиотеку, завершается, PSS, сообщаемый для этого процесса, не равен общему объему освобожденной памяти.
USS
USS (размер уникального набора) относится к общему объему уникальной памяти для процесса. Сюда не входит память общих библиотек. Когда процесс завершается, USS ссылается на фактическую память, которая будет освобождена. В результате USS — это значение, на которое следует обратить внимание, если вы подозреваете, что у процесса есть утечка памяти.
При запуске smem от имени пользователя root отображаются все процессы для всех пользователей системы.
sudo smem
Визуализация использования памяти
Визуализированный отчет почти наверняка легче читать, чем текстовые результаты. Используя smem, вы можете просмотреть использование памяти в виде круговой или гистограммы.
Чтобы просмотреть гистограмму PSS, USS и RSS процессов текущего пользователя, выполните следующую команду:
smem --bar name -c "pss uss rss"
Напомним, что PSS более точно отражает общий объем памяти, доступной в системе. Чтобы просмотреть круговую диаграмму, используйте следующую команду:
smem --pie name
Чтобы просмотреть круговую диаграмму RSS с пометкой по имени:
smem --pie name -s rss
Используя smem, вы можете легко просмотреть объем памяти, используемой приложениями и процессами в вашей системе, с помощью удобной круговой или гистограммы с цветовой кодировкой. Как обычно говорят, картинка стоит тысячи слов. Кажется, разработчики smem с этим согласны.