TGViewer
Записки IT специалиста Записки IT специалиста @interface31 · 8.99K subscribers
Post #6787 373
​​Спрашивают – отвечаем. Какой утилитой можно посмотреть какой процесс сколько занимает памяти.

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

Для этих целей следует использовать утилиту smem, которая доступна в стандартных репозиториях.

Утилита достаточно проста, прежде всего запустим ее с ключом -h, чтобы посмотреть доступные ключи. Их немного.

Если запустить утилиту без параметров, то вы получите список процессов в указанием занимаемой ими памяти в килобайтах отсортированный по возрастанию значений колонки PSS.

Всего колонок четыре, коротко разберем что они обозначают:

🔸 RSS – реальный объем памяти, выделяемый процессу, но это число не является точным, так как включает в себя в том числе память, занимаемую разделяемыми библиотеками, которые загружаются в память один раз, но в тоже время дает понять общие аппетиты процесса.

🔸 PSS – пропорциональный объем памяти, наиболее интересное с практической точки зрения число, так как объем памяти разделяемых библиотек делится пропорционально между процессами, например, если у нас три процесса используют одну и ту же библиотеку, то занимаемый ею объем памяти поделится на троих.

🔸 USS – уникальный объем памяти, который принадлежит собственно процессу, без учета разделяемых библиотек. Показывает фактическую стоимость запуска процесса и именно этот объем памяти будет возвращен в систему если процесс завершить.

🔸 Swap – объем сброшенных в подкачку страниц памяти процесса.

Сразу запоминаем полезные ключи программы:

▫️ -t - выводит снизу результирующую строку по всем колонкам
▫️ -p – представляет значение в процентах от общего объема памяти, а не в килобайтах
▫️ – подстраивает ширину колонок под текущий размер окна терминала

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

Это поведение можно изменить ключами -s и -r, после которых следует указать имя колонки для сортировки. Ключ -r сортирует значения в обратном порядке – по убыванию значений.

Например, чтобы посмотреть кто использует Swap в процентах по убыванию значений, используйте:

smem -tap -r swap


У применения этой утилиты есть одна особенность, будучи запущена с правами пользователя она показывает только процессы текущего пользователя, чтобы получить полное представление на уровне системы ее следует запускать от root или через sudo.

Также мы можем делать отборы по имени процесса или его владельцу, например, посмотрим все процессы Postgres по убыванию в процентах:

smem -tpa -P postgres -r pss


Или все процессы пользователя 1С:Предприятия:

smem -tpa -U usr1cv8  -r pss


Что еще можно посмотреть с ее помощью? Использование памяти в разрезе пользователей с ключом -u или по всей системе с ключом -w.

Отдельного упоминания стоит ключ -m, который показывает маппинги, это файлы отраженные в оперативную память, чаще всего это разделяемые библиотеки, с данным ключом вы можете подробно посмотреть что именно у вас загружено в память и сколько места оно там занимает.
  • 👍 4
More from @interface31
  1. Sep 24, 2026Приглашаем на воркшоп «Управление уязвимостями: строим технический процесс как у взрослых»…
  2. Sep 23, 2026Post #6785
  3. Sep 23, 2026Когда vSphere уже «трофейная», а продлевать нечего 🙃 24 сентября в 11:00 (МСК) CNS и Orio…
  4. Sep 23, 2026Протоколы быстрого роуминга Wi-Fi 802.11k/v/r Начнем с того, что бесшовного Wi-Fi роуминга…
  5. Sep 23, 2026DarkHost — хостинг и VDS для ваших проектов Размещайте сайты, интернет-магазины, приложени…
  6. Sep 22, 2026Post #6781
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →