
Как посмотреть объём оперативной памяти и файла подкачки? Как узнать, сколько оперативной памяти используется в настоящее время системой, а сколько доступно для запуска новых приложений? Для этого есть в linux утилита 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-утилит вы можете найти на данной странице.