Команда free

Команда 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.