RAM для пользователя, как проверить потребление памяти процессами пользователя в Linux


Потребление RAM процессами пользователя в Linux обычно требуется проверять и ограничивать на общих серверах, на которых размещаются скрипты большого количества разных пользователей.



Как проверить потребление RAM для пользователя в Linux


Узнать количество потребляемой в данный момент памяти для пользователя admin

ps -U admin --no-headers -o rss | awk '{ sum+=$1} END {print int(sum/1024) "MB"}'

Значение выводится в мегабайтах.



Для текущего пользователя то же можно посмотреть добавив вместо имени в команду `whoami`

admin@home:~$ ps -U `whoami` --no-headers -o rss | awk '{ sum+=$1} END {print int(sum/1024) "MB"}'
2712MB



Процессы можно отсортировать по потреблению памяти или вывести в виде списка

ps -U `whoami` -o rss,size,pid,command


RSS SIZE PID COMMAND
8336 1268 2513 /lib/systemd/systemd —user
2592 2464 2514 (sd-pam)
7332 25932 2527 /usr/bin/gnome-keyring-daemon —daemonize —login
5988 17288 2531 /usr/lib/gdm3/gdm-x-session —run-script env GNOME_SHELL_SESSI
124508 52092 2533 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/X



Команда выведет список с указанием идентификатора процесса и потребляемой процессом резидентной памяти.



Ещё один пример вывода по потреблению RAM для пользователя для сервера:

RAM для пользователя


Процессами пользователя admin потребляется 11 Мб, процессами пользователя root потребляется 305 Мб.

Имя пользователя root передается в виде текста, без команды whoami



Читайте про аварийное завершение процессов из-за нехватки памяти и то как оградить определенные процессы от OOM при помощи cgours.

При нехватке памяти в целом нужно увеличивать объем RAM в системе добавляя количество оперативной памяти.



В некоторых случаях можно использовать SWAP файл или SWAP раздел. С ними определенное дисковое пространство будет использоваться системой как оперативная память.

Сказать спасибо