Команда Free (свободная оперативная память) в Linux
Free Command in Linux
Сколько свободной оперативной памяти мне доступно в моей системе Linux? Достаточно ли свободной памяти для установки и запуска новых приложений?
В системах Linux вы можете использовать free команду для получения подробного отчета об использовании памяти системой.
Команда free предоставляет информацию об общем объеме физической и подкачки памяти, а также о свободной и используемой памяти и пространстве подкачки в системе.
Как использовать Free команду
Синтаксис free команды следующий:
При использовании без какой-либо опции, free команда отобразит информацию о памяти и поменяет местами в кибибайтах. 1 кибибайт (КиБ) составляет 1024 байта.
Вывод будет включать три строки, заголовок, одну строку для памяти и одну для подкачки:
В старых версиях Linux выходные данные могут немного отличаться.
Отображение использования памяти в удобочитаемом формате
Отображение использования памяти в других метриках
Команда free также позволяет указать единицу измерения памяти. Допустимые варианты:
Например, чтобы показать вывод в мегабайтах, вы должны набрать:
Отображение итогов в столбце
Постоянно печатать вывод
Например, чтобы печатать информацию о памяти каждые пять секунд, вы должны выполнить:
Вывод
К настоящему времени вы должны хорошо понимать, как использовать и интерпретировать free команду. Для просмотра всех доступных параметров free командной строки введите man free в своем терминале.
Мониторинг загрузки Linux-системы (на примере Ubuntu)
Проблемы в работе любой компьютерной системы проще своевременно предупредить, нежели исправлять. Тем более, что последствия выхода из строя оборудования системы могут грозить потерей важных данных и существенными финансовыми затратами. Регулярный мониторинг загрузки системы позволяет выявить проблемные места в работе оборудования, предупредить возможный перегрев и выход из строя компонентов сервера, выявить и исправить причину некорректной работы техники. Ниже мы рассмотрим мониторинг загрузки Linux-системы на примере конкретных утилит и рассмотрим, какие показатели работы оборудования можно с их помощью наблюдать.
Мониторинг оперативной памяти с помощью утилиты free
Одним из основных инструментов для мониторинга оперативной памяти в системе Linux является утилита free. Интерфейс её весьма прост и показывает статистику свободной и используемой памяти в системе.
Информацию о состоянии памяти утилита узнает из файла /proc/meminfo/ содержимое которого изменяется динамически. При запуске утилиты на экран выводится диагностическая информация. По умолчанию данные в колонках отображаются в килобайтах. С помощью ключей данные можно выводить в других единицах измерения:
В столбцах отображается следующая информация:
Стратегия операционной системы основана на том, что чем больше памяти выделяется для работы приложения, тем реже система обращается к диску и тем быстрее работает. При работе с приложениями система постоянно увеличивает размер отведенной каждому приложению памяти.
Shared memory, или разделяемое место, применяется системой для меньшего обращения к данным через ядро. В этом случае обращение к данным происходит не через ядро системы, а через определенный участок памяти. Когда памяти становится мало, начинается процесс свопинга.
Linux утилита free
Как посмотреть объём оперативной памяти и файла подкачки? Как узнать, сколько оперативной памяти используется в настоящее время системой, а сколько доступно для запуска новых приложений? Для этого есть в linux утилита free.
Описание утилиты free
Linux утилита free показывает свободную и занятую память в системе. Данные получаются путем разбора /proc/meminfo.
При запуске без ключей Linux утилита free выведет на экран следующие данные:
Вывод содержит данные о физической памяти 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– значения параметров памяти указываются в пебибайтах
Аналогично, имеются опции –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):
-w, –wide – переключение вывода в расширенный режим, который обеспечивает вывод более 80 символов в строке. В данном режиме параметры buffers и cache разделены на 2 колонки:
-l, –lohi – дополнительно выводит статистику по самым низким и высоким значениям:
-t, –total – дополнительно выводит данные по общему значению всей памяти (Mem + Swap):
-s, –seconds delay – постоянно обновлять данные с задержкой, указанной в секундах. Допускается использование микросекунд после точки. Например, установим обновление данных в 2.5 секунды:
Каждые 2.5 секунды на экране будет появляется новый вывод команды free с обновленными данными. Чтобы остановить выполнение команды нажмите Ctrl + C.
-c, –count count – выводить новые данные определенное число раз. Требуется указание параметра -s с временем задержки (если ключ опущен, будет использовано стандартное значение – 1 секунда).
Посмотрим изменение используемой памяти с разницей в 60 секунд:
При этом, после 60 секунд и второго вывода утилита free автоматически закончит свою работу.
-V, –version – посмотреть текущую версию утилиты free:
–help – вывод краткой помощи по использованию утилиты:
Ещё больше полезных Linux-утилит вы можете найти на данной странице.
Информация об оперативной памяти в Linux. Свободная, занятая и тип памяти
В этой статье мы рассмотрим, как получить информацию об оперативной памяти (RAM) в Linux.
Мы воспользуемся утилитами командной строки доступными для большинства Linux дистрибутивов.
Свободная и занятая оперативная память
Для получения информации о количестве свободной и занятой оперативной памяти в Linux можно использовать различные утилиты и команды. Рассмотрим несколько распространенных способов.
Команда free
Команда free очень простая, она выводит информацию о общем количестве оперативной памяти, о количестве занятой и свободной памяти, а также об использовании файла подкачки.
По умолчанию объем памяти выводится в килобайтах. Используя опции, можно выводить объем памяти в других форматах. Некоторые опции:
Команда vmstat
Команда top
top — это утилита командной строки, которая используется для мониторинга процессов и используемых ресурсов компьютера.
Запуск утилиты top :
В заголовке выводится информация об использованной оперативной памяти.
Команда htop
Утилита htop, также как и top, используется для мониторинга ресурсов и процессов.
Для установки утилиты htop в Ubuntu Linux (Linux Mint и других Ubuntu/Debian-дистрибутивах) выполните команду:
Запуск утилиты htop :
Файл /proc/meminfo
Тип памяти и частота
Рассмотрим, как получить информацию об установленных в компьютер модулях оперативной памяти. Воспользуемся командной dmidecode
Используем следующую команду:
В выводе команды будет информация о слотах оперативной памяти. Для каждого слота отображается установленный модуль оперативной памяти, его тип (поле Type ), размер (поле Size ), скорость/частота (поле Speed ) и другая информация.
В зависимости от системы и оборудования не всегда удается получить все данные, поэтому некоторые поля могут быть пустыми или иметь надписи Not provided/Unknown.
Заключение
Мы рассмотрели различные способы для просмотра информации о доступной и занятой оперативной памяти, а также показали, как вывести информацию об установленных модулях оперативной памяти.
Для отслеживания использования ресурсов компьютера существует множество графических программ. Найти их можно в нашем каталоге программ для Linux в разделе Система/Мониторинг.
Linux: утилита free и очистка кеша памяти
Утилита free – один из основных инструментов администратора, позволяющая отобразить статистику используемой и свободной памяти сервера.
Информацию free получает из файла /proc/meminfo – динамически изменяющего в процессе работы системы.
О разделе proc и файловой системе procfs более подробно можно почитать в статье Linux: описание и назначение файловой системы proc и каталога /proc.
Рассмотрим информацию, которую выводит free :
Будучи запущенной без ключей – она отобразит статистику в килобайтах.
Для вывода информации в других единицах – используются ключи:
-b – в байтах;
-m – мегабайтах;
-g – гигабайтах.
Например – обновлять каждые 5 секунд:
Mem – физическая память;
Swap – виртуальная память, или Paging.
total – общее количество памяти;
used – реально использующая в данный момент и зарезервированная системой память;
free – свободная память ( total минус used );
shared – Shared memory или Разделяемая память, можно посмотреть командой ipcs ;
buffers – буферы в памяти – страницы памяти, зарезервированные системой для выделения их процессам, когда они затребуют этого, так же известна как heap-memory;
cached – файлы, которые недавно были использованы системой/процессами и хранящиеся в памяти на случай если вскоре они снова потребуются.
Тут used = 4745 megabytes. Общее количество buffers и cached памяти – 3331 мегабайт. Итого, реально занятая процессами и системой память – лишь
1413 (1 мегабайт “потерялся” из-за подсчёта в мегабайтах, а не байтах/килобайтах).
Аналогично подсчитывается и реально свободная память, только buffers и cached добавляются к ней (так как на самом деле – это не занятые страницы):
Что бы отобразить реально свободную память одной командой – можно воспользоваться такой командой:
Как очистить кеш памяти в Linux?
Можно выполнить такую команду:
Увы, показать насколько реально можно освободить таким образом памяти не получится, т.к. машина совсем не нагружена. Тем не менее – разница видна:
Однако, смысл выполнять такую очистку есть лишь в случае реальных проблем с памятью.
Для FreeBSD есть аналогичная утилита freecolor :
UPD Нагуглил ссылку на этот пост, в треде>>> есть еще пример:








