Команда free позволяет вызывать одноименную утилиту, осуществляющую вывод информации об использовании оперативной памяти. Данная команда позволяет ознакомиться с информацией об использовании как физической памяти (RAM — Random Access Memory), представленной модулями с набором чипов в специальных слотах на материнской плате компьютера, так и памяти из раздела или файла подкачки подкачки (SWAP), расположенного на жестком диске или твердотельном накопителе. Вся выводимая с помощью команды информация с значительным набором дополнительных данных доступна из файла /proc/meminfo.
Базовый синтаксис команды выглядит следующим образом:
$ free [параметры]
Наиболее важными параметрами являются параметр -t, позволяющий выводить информацию об общем количестве использованной памяти в отдельной строке, параметр -s, позволяющий обновлять вывод через заданный промежуток времени в секундах, параметр -c, позволяющий ограничить количество обновлений вывода заданным значением, параметр -l, позволяющий выводить информацию о нижней и верхней памяти, параметр -h, позволяющий выводить информацию в удобном для чтения человеком формате, а также параметры --bytes, --kilo, --mega, --giga, --tera, --peta, позволяющие выводить числовые значения в соответствующих единицах, а именно, байтах, килобайтах (утилита работает в данном режиме по умолчанию), мегабайтах, гигабайтах, терабайтах и петабайтах соответственно. Кроме того, существуют параметры --kibi, --mebi, --gibi, --tebi, --pebi, позволяющие выводить числовые значения в кибибайтах, мебибайтах, гибибайтах, тебибайтах и пебибайтах.
Вывод утилиты представлен в форме таблицы. В строке «Память» выводится информация об использовании физической памяти, в строке «Подкачка» - информация об использовании раздела или файла подкачки, в строке «Всего» - информация об общем количестве использованной и свободной памяти (в случае использования параметра -t). В столбце «Всего» приведено общее количество памяти (параметры MemTotal и SwapTotal файла /proc/meminfo), в столбце «Занято» - количество использованной памяти , в столбце «Свободно» - количество доступной памяти (параметры MemFree и SwapFree файла /proc/meminfo), в столбце «Общая» - количество разделяемой памяти (параметр Shmem файла /proc/meminfo), в столбце «буф./врем.» - количество памяти, используемой для буферизации содержимого файловых систем (параметры Cached и SwapCached файла /proc/meminfo в сумме), в столбце «Доступно» - количество памяти, доступной для резервирования (параметр MemAvailable файла /proc/meminfo).
Команда free может использоваться для получения информации об использовании оперативной памяти в любое время. По умолчанию все значения в килобайтах:
$ free
всего занято свободно общая буф./врем. доступно
Память: 2037684 1612460 197732 20768 227492 249148
Подкачка: 2098172 1123916 974256
Очевидно, что на данном компьютере активно используется раздел подкачки, что негативно отражается на его производительности.
Вывод с использованием значений в мегабайтах, на мой взгляд, более удобный:
$ free --mega
всего занято свободно общая буф./врем. доступно
Память: 2086 1649 209 21 227 257
Подкачка: 2148 1149 998
А это удобный для чтения человеком формат с единицами измерения:
$ free -h
всего занято свободно общая буф./врем. доступно
Память: 1,9Gi 1,5Gi 232Mi 20Mi 189Mi 243Mi
Подкачка: 2,0Gi 1,1Gi 944Mi
В большинстве случаев затраты оперативной памяти можно оценить, не используя каких-либо параметров.
Для отслеживания состояния оперативной памяти следует использовать команду free с параметром -s и значением длительности периода перед обновлением информации в секундах:
$ free -s 1
всего занято свободно общая буф./врем. доступно
Память: 2037684 1621476 103508 18544 312700 242728
Подкачка: 2098172 1112164 986008
всего занято свободно общая буф./врем. доступно
Память: 2037684 1622484 102500 18544 312700 241732
Подкачка: 2098172 1112164 986008
всего занято свободно общая буф./врем. доступно
Память: 2037684 1622484 102500 18544 312700 241732
Подкачка: 2098172 1112164 986008
всего занято свободно общая буф./врем. доступно
Память: 2037684 1622468 102500 18544 312716 241748
Подкачка: 2098172 1112164 986008
^C
Очевидно, что теперь утилита периодически выводит информацию о состоянии оперативной памяти. В этом случае работа утилиты завершается с помощью комбинации клавиш CTRL+C.