Linux утилита free

Как посмотреть объём оперативной памяти и файла подкачки? Как узнать, сколько оперативной памяти используется в настоящее время системой, а сколько доступно для запуска новых приложений? Для этого есть в linux утилита free.

  1. Описание утилиты free
  2. Параметры вывода команды free

Описание утилиты free

Linux утилита free показывает свободную и занятую память в системе. Данные получаются путем разбора /proc/meminfo.

При запуске без ключей Linux утилита free выведет на экран следующие данные:

$ free
              total        used        free      shared  buff/cache   available
Mem:        3871612     3444088      123092        4800      304432      199308
Swap:       3145724      977220     2168504

Вывод содержит данные о физической памяти Mem и файле подкачки Swap. В столбцах указаны следующие параметры:

total – всего установленной памяти
used – использовано памяти (рассчитывается как total – free – buffers – cache)
free – свободно памяти
shared – разделенная память, используемая (в основном) tmpfs
buff/cache – память, используемая буферами ядра и кэшем страниц
available – доступно памяти для запуска новых приложений (без учета swap)
По умолчанию все значения перечисленных параметров указываются в кибибайтах (2 в степени 10 = 1024).

Linux утилита free: формат вывода

Для изменения формата вывода linux утилита free может принимать следующие ключи:

-b, –bytes – значения параметров памяти указываются в байтах
-k, –kibi – значения параметров памяти указываются в кибибайтах (используется по умолчанию)
-m, –mebi – значения параметров памяти указываются в мебибайтах
-g, –gibi – значения параметров памяти указываются в гибибайтах
–tebi – значения параметров памяти указываются в тебибайтах
–pebi– значения параметров памяти указываются в пебибайтах

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

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3780        3361         117           4         302         196
Swap:          3071        1015        2056

Аналогично, имеются опции –kilo, –mega, –giga, –tera, –peta. Однако, в отличии от описанных выше, которые при преобразовании используется множитель 1024, в данных ключах это множитель будет равен 1000.

–si – использует kilo, mega, giga и т.д. (множитель 1000) вместо kibi, mebi, gibi (множитель 1024).

-h, –human – значения памяти выводятся в удобном для человека представлении. Утилита автоматически подберет наиболее подходящий префикс (B, K, M, G, T, P с множителем 1024):

$ free -h
              total        used        free      shared  buff/cache   available
Mem:          3,7Gi       3,2Gi       109Mi       4,0Mi       352Mi       239Mi
Swap:         3,0Gi       1,0Gi       2,0Gi

-w, –wide – переключение вывода в расширенный режим, который обеспечивает вывод более 80 символов в строке. В данном режиме параметры buffers и cache разделены на 2 колонки:

$ free -h -w
              total        used        free      shared     buffers       cache   available
Mem:          3,7Gi       3,2Gi       107Mi       4,0Mi       145Mi       203Mi       232Mi
Swap:         3,0Gi       1,0Gi       2,0Gi

-l, –lohi – дополнительно выводит статистику по самым низким и высоким значениям:

$ free -h -l
              total        used        free      shared  buff/cache   available
Mem:          3,7Gi       3,2Gi       115Mi       4,0Mi       347Mi       240Mi
Low:          3,7Gi       3,6Gi       115Mi
High:            0B          0B          0B
Swap:         3,0Gi       1,0Gi       2,0Gi

-t, –total – дополнительно выводит данные по общему значению всей памяти (Mem + Swap):

$ free -h -t
              total        used        free      shared  buff/cache   available
Mem:          3,7Gi       3,2Gi       114Mi       4,0Mi       343Mi       234Mi
Swap:         3,0Gi       1,0Gi       2,0Gi
Total:        6,7Gi       4,3Gi       2,1Gi

-s, –seconds delay – постоянно обновлять данные с задержкой, указанной в секундах. Допускается использование микросекунд после точки. Например, установим обновление данных в 2.5 секунды:

$ free -h -s 2.5
              total        used        free      shared  buff/cache   available
Mem:          3,7Gi       3,2Gi       126Mi       4,0Mi       338Mi       241Mi
Swap:         3,0Gi       1,0Gi       2,0Gi

              total        used        free      shared  buff/cache   available
Mem:          3,7Gi       3,2Gi       126Mi       4,0Mi       338Mi       241Mi
Swap:         3,0Gi       1,0Gi       2,0Gi

              total        used        free      shared  buff/cache   available
Mem:          3,7Gi       3,2Gi       125Mi       4,0Mi       338Mi       240Mi
Swap:         3,0Gi       1,0Gi       2,0Gi

Каждые 2.5 секунды на экране будет появляется новый вывод команды free с обновленными данными. Чтобы остановить выполнение команды нажмите Ctrl + C.

-c, –count count – выводить новые данные определенное число раз. Требуется указание параметра -s с временем задержки (если ключ опущен, будет использовано стандартное значение – 1 секунда).

Посмотрим изменение используемой памяти с разницей в 60 секунд:

$ free -h -c2 -s60
              total        used        free      shared  buff/cache   available
Mem:          3,7Gi       3,2Gi       113Mi       4,0Mi       339Mi       229Mi
Swap:         3,0Gi       1,0Gi       2,0Gi

              total        used        free      shared  buff/cache   available
Mem:          3,7Gi       3,3Gi       212Mi       4,0Mi       339Mi       229Mi
Swap:         3,0Gi       1,0Gi       2,0Gi

При этом, после 60 секунд и второго вывода утилита free автоматически закончит свою работу.

-V, –version – посмотреть текущую версию утилиты free:

$ free -V
free from procps-ng 3.3.15

–help – вывод краткой помощи по использованию утилиты:

$ free --help

Использование:
 free [параметры]

Параметры:
 -b, --bytes         вывод в байтах
     --kilo          отображает вывод в килобайтах
     --mega          отображает вывод в мегабайтах
     --giga          отображает вывод в гигабайтах
     --tera          вывод в терабайтах
     --peta          отображает вывод в петабайтах
 -k, --kibi          отображает вывод в кибибайтах
 -m, --mebi          отображает вывод в мебибайтах
 -g, --gibi          отображает вывод в гибибайтах
     --tebi          отображает вывод в тебибайтах
     --pebi          отображает вывод в пебибайтах
 -h, --human         вывод в удобочитаемом виде
     --si            использовать степени 1000, а не 1024
 -l, --lohi          показывать подробную статистику нижней и верхней памяти
 -t, --total         показать общее количество RAM + swap
 -s N, --seconds N   повторять вывод каждые N секунд
 -c N, --count N     повторить вывод N раз, затем выйти
 -w, --wide          широкий вывод

     --help     показать эту справку и выйти
 -V, --version  вывести информацию и выйти

Подробнее смотрите free(1).

Ещё больше полезных Linux-утилит вы можете найти на данной странице.