linux
system
free
Показать объём свободной и используемой оперативной памяти и swap
Описание
Команда free выводит сводку по использованию оперативной памяти (RAM) и подкачки (swap) в системе. Это один из первых инструментов, который проверяют при диагностике нехватки памяти или анализе производительности сервера.
Вывод free разделён на три строки: Mem (физическая оперативная память), Swap (раздел подкачки) и опционально Total. Ключевой столбец — available, показывающий реально доступную память с учётом освобождаемых кэшей.
Используйте free -h для читаемого вывода, free -m для работы с результатами в скриптах (мегабайты — удобная единица).
Синтаксис
# Показать память (в килобайтах по умолчанию)
free
# Показать в мегабайтах — удобно для скриптов
free -m
# Показать в читаемом формате (K/M/G автоматически)
free -h
# Показать с итоговой строкой Total
free -h -t
# Обновлять каждые 2 секунды (как watch)
free -s 2
Столбцы вывода
total used free shared buff/cache available
Mem: 7.7G 2.1G 1.2G 256M 4.4G 5.1G
Swap: 2.0G 0B 2.0G
| Столбец | Описание |
|---|---|
total | Общий объём физической памяти / swap |
used | Используемая память (total − free − buff/cache) |
free | Совершенно свободная память — ничем не занята |
shared | Память, используемая разделяемыми сегментами (tmpfs, IPC) |
buff/cache | Буферы ядра + файловый кэш (ОС освободит при необходимости) |
available | Реально доступная память для запуска новых процессов: free + освобождаемый buff/cache. Этот столбец важнее free |
Флаги и опции
| Флаг | Описание | Пример |
|---|---|---|
-b |
Выводить в байтах | free -b |
-k |
Выводить в килобайтах (поведение по умолчанию) | free -k |
-m |
Выводить в мегабайтах — удобно для скриптов и сравнений | free -m |
-g |
Выводить в гигабайтах | free -g |
-h, --human |
Читаемый формат: система сама выбирает единицы (K/M/G/T) для каждого значения | free -h |
-t, --total |
Добавить итоговую строку Total (сумма Mem + Swap) | free -h -t |
-s N |
Повторять вывод каждые N секунд (непрерывный мониторинг) | free -s 2 |
-w, --wide |
Широкий вывод: разделить buff/cache на отдельные столбцы buffers и cache | free -w -h |
--help |
Показать справку по использованию | free --help |
-V |
Показать версию утилиты и выйти | free -V |
Паттерны использования
Память в мегабайтах
free -m # total used free shared buff/cache available # Mem: 7874 2143 1283 256 4447 5234 # Swap: 2047 0 2047
Читаемый формат
free -h # total used free shared buff/cache available # Mem: 7.7G 2.1G 1.2G 256M 4.4G 5.1G # Swap: 2.0G 0B 2.0G
Извлечь общий объём ОЗУ (из ДЗ урока 10)
# Источник: Linux_ Домашнее задание 6
# Получить общий объём RAM в МБ
free -m | grep Mem | awk '{print $2}'
# 7874
# Дописать в файл (ДЗ урока 10)
free -m | grep Mem | awk '{print $2}' >> /opt/GROUP/NAME/.process_management
Мониторинг памяти в реальном времени
# Обновлять каждые 3 секунды free -h -s 3 # Альтернатива: watch (обновляет любую команду) watch -n 2 free -h # С итоговой строкой free -h --total
Советы и предупреждения
Совет: смотрите на available, а не на free
Столбец
Столбец
free показывает память, которую ничто не занимает даже как кэш. Это число часто мало — Linux агрессивно использует свободную память под файловый кэш для ускорения работы. Столбец available реалистичнее: он показывает память, которую ОС может отдать новому процессу, включая освобождаемый кэш. Оценивайте память по available.
Совет: много buff/cache — это норма
Большое значение
Большое значение
buff/cache не означает нехватку памяти — ядро Linux намеренно кэширует файлы для ускорения I/O. При необходимости ядро автоматически освобождает эту память под процессы. Беспокоиться стоит только когда available близко к нулю и активно используется swap.
Совет: free -m для скриптов
В bash-скриптах удобнее работать с
В bash-скриптах удобнее работать с
free -m (мегабайты — целые числа без суффиксов K/G). Формула извлечения: free -m | grep Mem | awk '{print $2}' — вернёт только число мегабайт общего ОЗУ. Флаг -h хорош для чтения человеком, но усложняет обработку в awk/sed.