TGViewer
NetworkAdmin.ru NetworkAdmin.ru @networkadminru · 4.7K subscribers
Post #515 2.13K
Как понять, сколько памяти действительно использует процесс в Linux?

Многие, особенно после Windows, теряются при анализе памяти в Linux. Диспетчер задач в Win наглядно показывает, сколько ОЗУ занято, сколько свободно - всё просто. В Linux же понимание, что и сколько потребляет, требует большего погружения.

Разберемся на примере анализа потребления памяти процессом, например, nginx или php-fpm.

1️⃣ Находим PID процесса


ps ax | grep nginx


Допустим, PID мастер-процесса - 1947.

2️⃣ Используем pmap. Эта утилита показывает, какие участки памяти использует процесс и сколько они занимают.

📍 Виртуальная память (VIRT/VSZ):


pmap 1947 -p


Внизу увидим итоговое значение виртуальной памяти - все, включая разделяемые библиотеки и даже то, что может быть в swap. Для многопроцессных сервисов (как nginx) эта цифра будет одинаковой у всех дочерних процессов. Поэтому она мало информативна в отрыве от контекста.

📍 Резидентная память (RES/RSS):


pmap 1947 -x


Это объем оперативной памяти, реально занятой процессом (без учета swap). Но и тут не всё идеально - при наличии форков каждый из них покажет одинаковую RSS, хотя они могут разделять память.

📍 Приватная память:


pmap 1947 -d


А вот здесь интересно: writeable/private показывает именно ту часть памяти, которую процесс использует исключительно сам. Без общих библиотек и форков. Это значение важно при планировании числа одновременно работающих процессов (например, php-fpm).

❓ Как применять эти данные?

Если планируешь запустить 50 PHP-процессов, и каждый из них использует ~30 МБ приватной памяти, нужно минимум 1.5 ГБ ОЗУ только под них. А ещё есть сама ОС, веб-сервер, БД и кэш - нужно считать с запасом, иначе словишь oom-killer.

❓ Где берёт данные pmap?

Из /proc/<PID>/smaps, но pmap красиво их парсит. Хочешь больше деталей - загляни туда напрямую.


cat /proc/1947/smaps


Анализ потребления памяти в Linux - это не только top или htop. Используй pmap, чтобы понять реальное потребление и не попасть в просак при настройке сервисов.

#linux #memory

🧑‍💻 NetworkAdmin
  • 👍 15
  • ❤ 2
More from @networkadminru
  1. Oct 1, 2026✨ Systemd-команды, которые быстро дают информацию о системе У systemd есть несколько коман…
  2. Oct 1, 2026CENTI CONF: DevOps Day — митап по разработке и инженерным решениям ⚡️ 6 ноября Centicore G…
  3. Sep 30, 2026🖥 Get-ADUser: полезные примеры для работы с пользователями Active Directory Get-ADUser -…
  4. Sep 29, 2026🥱 Как быстро разобраться с дисками и маунтами Когда на сервере несколько дисков, LVM, отд…
  5. Sep 28, 2026🔎 TCP keepalive: как находить мертвые соединения до того, как они создадут проблему Иногд…
  6. Sep 25, 2026🤩 Как расшифровать код ошибки Windows через certutil При установке обновлений Windows ран…
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 →