Как узнать потребление памяти процессом в Linux

В Linux потребление памяти процессами измеряется двумя значениями, VSZ и RSS (обе измеряются в байтах).
RSS — переводится как постоянное потребление памяти (Resident Set Size) и показывает сколько в момент вывода команды занято в оперативной памяти.
Также стоит отметить что он показывает весь стёк физически выделенной памяти.
VSZ — виртуальная память (Virtual Memory Size)
Посмотреть список процессов с сортировкой по этим параметрам можно командой:
Для RSS (Resident Set Size):
ps -aux --sort -rss
Для VSZ (Virtual Memory Size):
ps -aux --sort -vsz
В зависимости от запущенной команды, результаты вывода будут отображаться в приоритете по занимаему месту процессом в оперативной памяти (RSS)
или количеству занимаемого места в виртуальной памяти (VSZ) в порядке убывания.
$ ps -aux --sort -rss USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND user 30799 51.2 8.1 2733764 285136 ? Rl 09:25 5:30 /usr/lib/chromium-browser/chromium-browser --ppapi-flash-path=/usr/lib/pepperflashplugin-nonfree/libpepflashplayer.so --ppap user 2800 0.1 6.6 9972812 234184 ? Sl окт31 1:26 /usr/bin/plasmashell --shut-up user 31308 2.4 5.3 1767496 188672 ? Sl 09:26 0:13 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 31011 3.9 5.3 1793296 186812 ? Sl 09:25 0:25 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 31369 5.5 4.8 1378568 171328 ? Sl 09:28 0:23 /usr/lib/libreoffice/program/soffice.bin --writer --splash-pipe=5 user 14442 12.1 4.2 1050808 150148 ? Sl 01:19 60:04 /usr/lib/x86_64-linux-gnu/libexec/kscreenlocker_greet --graceTime 5000 --ksldfd 26 user 31111 0.9 3.8 1708496 134564 ? Sl 09:25 0:06 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 1225 0.0 3.7 3639148 132092 ? Sl окт31 1:00 /usr/bin/plasmashell --shut-up user 31078 0.6 3.7 1724480 130724 ? Sl 09:25 0:03 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 30986 0.7 3.3 1717860 117660 ? Sl 09:25 0:04 /usr/lib/chromium-browser/chromium-browser --type=renderer --enable-pinch --field-trial-handle=7228759356551874141,180166971 user 1216 1.7 3.2 3271220 113736 ? Sl окт31 20:36 kwin_x11
Важными столбцами являются:
- USER Пользователь, от имени которого работает процесс
- PID Идентификатор процесса
- RSS Физическая память, занятая процессом
- VSZ Виртуальная память
Из примера видно, что большую часть памяти (RSS) занимают процессы браузера chromium.
5 способов проверить доступную память в Ubuntu
Как пользователям Ubuntu, особенно администраторам, нам необходимо проверять, сколько ресурсов оперативной памяти использует наша система и сколько из них свободно. Мы также знаем, что большинство административных задач лучше выполнять из командной строки Linux, чем из графического интерфейса пользователя. Например, серверы обычно работают в оболочке, а графический интерфейс пользователя вообще отсутствует. Поскольку наиболее важно контролировать ресурсы памяти на серверах, лучше всего изучить соответствующие команды, которые помогут нам управлять серверами.
В этой статье мы расскажем, как можно проверить доступную память с помощью следующих 5 команд:
- команда free
- команда vmstat
- команда /proc/meminfo
- команда top
- команда htop
С помощью этих команд вы всегда можете быть уверены, что ресурсов памяти достаточно для очень важных процессов на ваших серверах. Например, если вы используете веб-сервер, вы можете быть уверены, что нехватка ресурсов не приведет к замедлению доступа к веб-сайту или даже к его краху.
Для просмотра использования памяти мы использовали командную строку Ubuntu, приложение Terminal. Вы можете открыть Терминал с помощью системного тире или комбинации клавиш Ctrl+alt+T.
Способ 1: команда free
Поскольку команда free является самой распространенной и, без сомнения, самой полезной, мы расскажем о ее использовании в первую очередь. Эта команда используется для проверки информации об использовании оперативной памяти вашей системой. Вот команда, которую нужно ввести в Терминале:
free -m
Флаг m означает, что информация будет отображаться в мегабайтах.

Столбец «free» указывает на доступную память.
Способ 2: Команда vmstat
Чтобы просмотреть статистику памяти с помощью команды vmstat, вы можете использовать ее следующим образом:
vmstat -s
Флаг s предоставляет подробную статистику об использовании памяти.

В выводе можно просмотреть свободную память и запись о свободной памяти подкачки, что указывает на доступную память в вашей системе.
Метод 3: Команда /proc/meminfo
Следующая команда извлекает информацию, связанную с памятью, из файловой системы /proc. Эти файлы содержат динамическую информацию о системе и ядре, а не реальные системные файлы.
Именно эту команду вы будете использовать для печати информации о памяти:
cat /proc/meminfo

Вывод этой команды похож на вывод команды vmstat. Вы можете легко просмотреть свободную память в результате MemFree и свободную память подкачки в результате SwapFree.
Метод 4: Команда top
Команда top используется для печати данных об использовании процессора и памяти в вашей системе. Вы можете просто использовать эту команду следующим образом:

В заголовке вывода вы можете увидеть записи KiB Mem и Kib Swap, через которые вы можете проверить использованные и свободные ресурсы памяти.
Метод 5: Команда htop
Как и команда top, команда htop также дает подробный анализ использования процессора и памяти. Если в вашей системе не установлен htop, вы можете установить его, предварительно обновив репозитории abt с помощью следующей команды:
sudo apt-get update
А затем установите htop, введя следующую команду как sudo:
sudo apt install htop
После установки htop вы можете просто использовать следующую команду для печати необходимой информации:
htop

Записи Mem (память, она же RAM) и Swp (своп) в заголовке указывают на используемую и общую память, с помощью которых можно вычислить свободную память, доступную в вашей системе.
С помощью команд, о которых мы рассказали в этой статье, вы можете следить за тем, чтобы системные процессы никогда не оставались без памяти. Вы можете полностью отказаться от графического интерфейса и все равно следить за использованием памяти на персональных компьютерах и серверах.
Как узнать общий объем физической памяти (RAM) в Linux

Иногда возникает необходимость проверить общий объём памяти сервера, на котором запущена ОС Linux, или же данные о памяти требуются для сценариев командной оболочки. К счастью, есть множество инструментов, которые нам в этом помогут. В этом руководстве приводятся различные команды и утилиты для определения общего объёма физической памяти.
2. Команда free
free — самая простая в использовании команда из подборки. С её помощью выводятся данные по использованию физической и SWAP-памяти — по умолчанию в стандартном потоке вывода. Команда free — один из самых распространённых способов быстро проверить объём оперативной памяти, поскольку она доступна в большинстве дистрибутивов Linux . Достаточно ввести её в терминале без всяких флагов:
$ free
total used free shared buff/cache available Mem: 8021048 1320432 5689744 335556 1010872 6121932 Swap: 0 0 0
Как видите, объём физической памяти указан в байтах. Однако, эти же данные можно вывести в удобочитаемом формате, добавив флаг -h или –human :
$ free -h
total used free shared buff/cache available Mem: 7.6Gi 1.3Gi 5.4Gi 318Mi 985Mi 5.8Gi Swap: 0B 0B 0B
Как видно из полученных результатов, общий объём оперативной памяти составляет 7,6 ГБ. Есть и другие опции, с помощью которых можно привести выводимые данные в нужный формат: –kilo, –mega, –Giga и так далее. Ещё есть интересная опция -s :
$ free -h -s 5
Флаг -s обозначает секунды, и в этом случае команда free выведет данные об использовании оперативной памяти за каждые пять секунд. Опция особенно полезна, если отслеживать использование памяти нужно с заданным интервалом . Останавливается процесс сочетанием горячих клавиш Ctrl +C.
3. Команда vmstat
Как и команда free , vmstat (статистика виртуальной памяти) также доступна в большинстве дистрибутивов Linux. По умолчанию при выполнении команды vmstat выводятся данные о свободной памяти, памяти используемой в качестве буферов и кэша, SWAP-памяти, использовании процессора, блочных устройств и системы в целом:
$ vmstat -w
--procs-- -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 5352900 56816 1053708 0 0 162 73 328 1087 18 4 78 0 0
Флаг -w или –wide позволяет отобразить результат в развёрнутом, удобном для чтения формате. Поскольку нас интересует общий объём оперативной памяти, добавим флаг -s или –stats :
$ vmstat -s
8021048 K total memory 1564516 K used memory 305336 K active memory 1962636 K inactive memory 5391588 K free memory 58224 K buffer memory 1006720 K swap cache 0 K total swap 0 K used swap 0 K free swap 76393 non-nice user cpu ticks 5 nice user cpu ticks 14122 system cpu ticks 337834 idle cpu ticks 1790 IO-wait cpu ticks 1463 IRQ cpu ticks 614 softirq cpu ticks 0 stolen cpu ticks 617253 pages paged in 310410 pages paged out 0 pages swapped in 0 pages swapped out 1426200 interrupts 4722588 CPU context switches 1625563254 boot time 1949 forks
Первая запись в результатах — общий объём памяти RAM. Если нужны не все данные, можно использовать grep для получения только требуемой записи:
$ vmstat -s | grep -i 'total memory' | sed 's/ *//'
8021048 K total memory
4. Команда top
top представляет собой диспетчер задач в виде командной строки с выводом в режиме реального времени . С её помощью можно просмотреть активные процессы в виде удобной таблицы. Также она выводит данные по использованию процессора, оперативной памяти и системы в целом. Чтобы запустить такой диспетчер задач, достаточно выполнить команду top :
top - 15:18:13 up 57 min, 1 user, load average: 3.40, 3.26, 2.04 Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie %Cpu(s): 17.2 us, 3.6 sy, 0.0 ni, 77.5 id, 0.3 wa, 0.9 hi, 0.5 si, 0.0 st MiB Mem : 7833.1 total, 4665.9 free, 1782.3 used, 1384.8 buff/cache top - 15:18:49 up 57 min, 1 user, load average: 2.61, 3.08, 2.03 Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie top - 15:18:58 up 58 min, 1 user, load average: 2.45, 3.02, 2.02 MiB Swap: 0.0 total, 0.0 free, 0.0 used. 5324.5 avail Mem
Вверху, рядом с полем Mem , приводятся данные по физической памяти: общий объём RAM 7833 МБ.
5. Утилита dmidecode
Утилита dmidecode в удобочитаемом формате выводит сведения об аппаратных ресурсах: спецификации, серийные номера, версии BIOS. Данные по оборудованию извлекаются из таблицы DMI . С помощью утилиты можно получить ценные сведения о системе, например, максимальный объём поддерживаемой памяти.
5.1. Установка dmidecode
Утилита dmidecode не на всех дистрибутивах Linux установлена по умолчанию , так что начнём с её установки. Установить dmidecode можно непосредственно из репозитория дистрибутива с помощью менеджера пакетов.
В дистрибутивах, основанных на Ubuntu, возможна установка пакета с помощью инструмента apt :
# apt install dmidecode
Для RHEL, Fedora и CentOS можно использовать yum :
# yum install dmidecode
Если дистрибутив основан на Arch, с этой задачей справится pacman :
# pacman -Sy dmidecode
5.2. Использование dmidecode
Как только установка завершена, выполним команду dmidecode из терминала:
# dmidecode
Чтобы выполнить dmidecode , нам потребуются корневые привилегии . После выполнения мы получим подробные сведения об аппаратных ресурсах. Будет много данных по оборудованию, но нас интересует только общий объём памяти.
К счастью, мы можем добавить к команде опцию –type и указать интересующие нас компоненты: BIOS, память, процессор, температуру и так далее. Опция –type требует введения номера типа записи DMI.
В нашем случае это запись DMI о памяти, и получить к ней доступ можно, введя следующие значения: 5, 6, 16, 17, 18, 19, 20, 21 и 22. Из этого перечня выбираем 19, поскольку именно так обозначаются устройства оперативной памяти, подключённые к материнской плате:
# dmidecode --type 19
# dmidecode 3.3 Getting SMBIOS data from sysfs. SMBIOS 3.0.0 present. Handle 0x0049, DMI type 19, 31 bytes Memory Array Mapped Address Starting Address: 0x00000000000 Ending Address: 0x001FFFFFFFF Range Size: 8 GB Physical Array Handle: 0x0044 Partition Width: 1
Из результатов следует, что у нас только один модуль RAM размером 8 ГБ, установленный в один из слотов для оперативной памяти.
6. Виртуальный файл /proc/meminfo
Директория /proc относится к особому типу директорий, содержащих виртуальные файлы. Эти виртуальные файлы позволяют заглянуть в ядро, процессы и конфигурации Linux . Они не занимают места на диске, поскольку создаются непосредственно в момент обращения к ним. Для чтения некоторых требуются корневые привилегии.
В директории /proc есть особый файл под названием meminfo , прочесть который можно командами cat и less . Среди прочих полезностей там содержатся и данные об объёме физической памяти . Давайте заглянем в файл /proc/meminfo с помощью cat :
$ cat /proc/meminfo
В примере использована команда cat — удобная утилита для чтения из файла или стандартного потока ввода. При выполнении эта команда прочтёт файл /proc/meminfo и представит обширные сведения о физической памяти . Нас интересует только общий объём оперативной памяти, который указан в первых трёх строках результата.
$ cat /proc/meminfo | head -n 3
MemTotal: 8021048 kB MemFree: 4542960 kB MemAvailable: 5155668 kB
Мы ограничили вывод интересующими нас строками с помощью команды head . В сочетании с аргументом -n команда head задаёт количество строк результата. Размер памяти приводится в килобайтах и даёт понимание общего объёма физической памяти, а также свободного и доступного объёма.
Предположим, что мы пишем скрипт для командной оболочки Bash, и в нём фигурирует объём физической памяти RAM. Чтобы его туда добавить, можем выполнить чтение файла /proc/meminfo , а затем с помощью grep извлечь общий объём памяти.
#!/bin/bash total_ram () < local totalram=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o '[[:digit:]]*') echo $totalram >ram_size=$(total_ram) echo "Total RAM: $ram_size kB"
Теперь сохраним скрипт и сделаем его исполняемым:
$ chmod +755 totalram.sh $ ./totalram.sh Total RAM: 8021048 kB
7. Использование диспетчеров задач с графическим пользовательским интерфейсом
Отслеживать работу процессора, использование оперативной памяти и сетевых ресурсов, а также управлять процессами можно с помощью широкого ряда диспетчеров задач с графическим интерфейсом. Рассмотрим самые популярные варианты для Linux.
7.1. GNOME System Monitor
GNOME System Monitor входит в состав среды рабочего стола GNOME как диспетчер задач по умолчанию . А пользователи другой рабочей среды с лёгкостью могут найти пакет gnome-system-monitor в репозитории с дистрибутивом. После установки можно запустить диспетчер из командной строки:
$ gnome-system-monitor

Среди сведений на вкладке Resources найдётся и общий объём памяти.
7.2. KSysGuard
KSysGuard — диспетчер задач, разработанный сообществом KDE как дефолтный для свободной среды рабочего стола KDE . Аналогичным образом, если вы используете другую рабочую среду, его несложно установить в системе с помощью пакета ksysguard в соответствующем репозитории. Запустить его после установки можно командой ksysguard :
$ ksysguard

Открыв ksysguard , перейдём на вкладку System Load . Данные о памяти там представлены вместе с наглядным графиком.
8. Заключение
В этой статье мы рассмотрели различные команды и инструменты, с помощью которых можно выяснить объём физической памяти системы под управлением Linux.
Мы изучили базовую команду free и её альтернативу vmstat . Затем узнали, как с помощью команды top можно получить различные системные данные. Также взглянули на утилиту dmidecode и выяснили, как извлечь данные о физической памяти из таблицы DMI.
Ознакомились с директорией /proc и научились читать файл /proc/meminfo , чтобы выяснить общий объём памяти RAM и использовать его в скрипте для оболочки Bash. И наконец, перечислили пару графических диспетчеров задач, показав, как с их помощью просмотреть объём и статистику использования оперативной памяти.
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS .
- FirstVDS
- Linux
- cистемное администрирование
- Блог компании FirstVDS
- Настройка Linux
- Системное администрирование
- Серверное администрирование
Как посмотреть использование памяти в linux
Информацию по использованию оперативной памяти процессами в операционной системе Linux вы можете получить, подключившись к оболочке (shell) операционной системы.
Доступ к оболочке операционной системы возможен через веб-консоль используемой услуги или через подключение к виртуальной машине по SSH.
В операционной системе Linux выполните следующую команду:
ps -AH -o pid,size,command | sort -rn -k2
Результат выполнения команды представлен на следующем скриншоте.
Информация в выводе уже отсортирована по второму столбцу (потреблению оперативной памяти).
Дополнительная информация по выводу команды:
1-ый столбец — PID, идентификатор процесса;
2-ой столбец — SIZE, потребление оперативной памяти, КБ;
3-ий столбец — COMMAND, имя процесса или команда запуска процесса.
Узнать общую информацию по использованию оперативной памяти на виртуальной машине вы можете с помощью команды:
free -h
Результат выполнения команды представлен на следующем скриншоте.
Дополнительная информация по выводу команды:
— в выводе представлена информация по оперативной памяти (Mem) и разделу подкачки (Swap);
— в столбце total указана информация об общем размере памяти, доступном операционной системе.
— в столбце used указана информация о размере используемой памяти, за исключением свободной (free) и используемой под буфер и кэш (buff/cache);
— в столбце free указана информация о размере доступной (неиспользуемой) памяти.
— в столбце shared указана информация о размере памяти, используемой под храение разделяемой памяти (shared memory) и tmpfs.
— в столбце buff/cache указана информация о размере памяти, используемом буфферами и кэшем операционной системы и запущенных процессов;
— в столбце available указана информация о размере памяти, доступном для использования.
1.png (80.46 КБ)
2.png (8.19 КБ)
Если решение вопроса найти не удалось, Вы можете отправить нам заявку: