Linux утилита free

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

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

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

Linux утилита 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-утилит вы можете найти на данной странице.