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
–kilo, –mega, –Giga
и так далее.
Ещё есть интересная опция -s
:
$ free -h -s 5
-s
обозначает секунды, и в этом случае команда
free
выведет данные об использовании оперативной памяти за каждые пять секунд. Опция
особенно полезна, если отслеживать использование памяти нужно с заданным интервалом. Останавливается процесс сочетанием горячих клавиш Ctrl +C.
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
grep
для получения только требуемой записи:
$ vmstat -s | grep -i 'total memory' | sed 's/ *//'
8021048 K total memory
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 МБ.
dmidecode
в удобочитаемом формате выводит сведения об аппаратных ресурсах: спецификации, серийные номера, версии BIOS.
Данные по оборудованию извлекаются из таблицы DMI. С помощью утилиты можно получить ценные сведения о системе, например, максимальный объём поддерживаемой памяти.
dmidecode
не на всех дистрибутивах Linux установлена по умолчанию, так что начнём с её установки. Установить
dmidecode
можно непосредственно из репозитория дистрибутива с помощью менеджера пакетов.
apt
:
# apt install dmidecode
yum
:
# yum install dmidecode
pacman
:
# pacman -Sy dmidecode
dmidecode
из терминала:
# dmidecode
dmidecode
, нам
потребуются корневые привилегии. После выполнения мы получим подробные сведения об аппаратных ресурсах. Будет много данных по оборудованию, но нас интересует только общий объём памяти.
–type
и указать интересующие нас компоненты: BIOS, память, процессор, температуру и так далее. Опция
–type
требует введения номера типа записи DMI.
# 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
/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
задаёт количество строк результата. Размер памяти приводится в килобайтах и даёт понимание общего объёма физической памяти, а также свободного и доступного объёма.
/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
gnome-system-monitor
в репозитории с дистрибутивом. После установки можно запустить диспетчер из командной строки:
$ gnome-system-monitor
Resources
найдётся и общий объём памяти.
ksysguard
в соответствующем репозитории. Запустить его после установки можно командой
ksysguard
:
$ ksysguard
ksysguard
, перейдём на вкладку
System Load
. Данные о памяти там представлены вместе с наглядным графиком.
free
и её альтернативу
vmstat
. Затем узнали, как с помощью команды
top
можно получить различные системные данные. Также взглянули на утилиту dmidecode и выяснили, как извлечь данные о физической памяти из таблицы DMI.
/proc
и научились читать файл
/proc/meminfo
, чтобы выяснить общий объём памяти RAM и использовать его в скрипте для оболочки Bash. И наконец, перечислили пару графических диспетчеров задач, показав, как с их помощью просмотреть объём и статистику использования оперативной памяти.
на главную сниппетов