Команда Linux free: Мониторинг системной памяти

LinuxBeginner
Практиковаться сейчас

Введение

Добро пожаловать в практическую лабораторию по изучению команды free в Linux. В ходе этого занятия вы научитесь использовать команду free для мониторинга и анализа использования системной памяти. Этот навык критически важен для системных администраторов и разработчиков, которым необходимо оптимизировать производительность системы и устранять неполадки, связанные с нехваткой ресурсов.

Представьте, что вы — младший системный администратор, которому поручено следить за состоянием памяти на нагруженном веб-сервере. Команда free станет вашим основным инструментом для этой задачи, позволяя быстро оценить текущее состояние памяти и выявить потенциальные проблемы до того, как они повлияют на работу системы.

Базовое использование команды free

Начнем с использования команды free в ее простейшем виде. Это даст нам общее представление об использовании памяти в системе.

Для начала откройте терминал, если вы еще этого не сделали. Затем выполните следующую команду:

free

Вы должны увидеть вывод, похожий на этот:

              total        used        free      shared  buff/cache   available
Mem:        8167004     2524956     3300280      658636     2341768     4657560
Swap:       2097152           0     2097152

Этот вывод представляет собой моментальный снимок состояния памяти вашей системы. Давайте разберем, что означает каждый столбец:

  • total: Общий объем физической оперативной памяти (RAM) и раздела подкачки (swap).
  • used: Объем памяти, используемый в данный момент.
  • free: Объем памяти, который абсолютно не используется.
  • shared: Объем памяти, используемый временной файловой системой tmpfs.
  • buff/cache: Объем памяти, выделенный под буферы и кэш.
  • available: Оценка объема памяти, доступного для запуска новых приложений без использования свопа.

Вывод разделен на две строки:

  • Mem: Информация о физической оперативной памяти.
  • Swap: Информация о пространстве подкачки (виртуальной памяти).

По умолчанию все значения отображаются в байтах.

Отображение информации в удобном для чтения формате

Хотя стандартный вывод free точен, его бывает сложно быстро интерпретировать. Воспользуемся опцией -h, чтобы отобразить информацию в более понятном для человека виде.

Выполните следующую команду:

free -h

Теперь вы увидите результат, подобный этому:

              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       2.4Gi       3.1Gi       642Mi       2.2Gi       4.4Gi
Swap:         2.0Gi          0B       2.0Gi

Опция -h (сокращение от "human-readable") автоматически масштабирует числа и добавляет соответствующие суффиксы единиц измерения (G для гигабайт, M для мегабайт и т. д.). Это значительно упрощает мгновенную оценку использования ресурсов системы.

Обратите внимание, что значения теперь отображаются в таких единицах, как Gi (гибибайты) и Mi (мебибайты). Это двоичные единицы, где 1 Gi = 1024 Mi — стандартный способ измерения памяти в компьютерных системах.

Отображение информации в мегабайтах

Иногда требуется просмотреть данные в конкретных единицах измерения. Воспользуемся опцией -m, чтобы вывести информацию в мегабайтах.

Выполните следующую команду:

free -m

Ваш вывод будет выглядеть примерно так:

              total        used        free      shared  buff/cache   available
Mem:           7975        2466        3222         642        2286        4548
Swap:          2047           0        2047

Опция -m заставляет free отображать все значения в мегабайтах. Это полезно, когда вам нужна большая точность, чем дает опция -h, но при этом вы хотите сохранить читаемость чисел.

Учтите, что это мебибайты (MiB), где 1 MiB = 1,048,576 байт, а не десятичные мегабайты (MB), где 1 MB = 1,000,000 байт. На практике разница невелика, и эти термины часто используют как взаимозаменяемые.

Непрерывный мониторинг с помощью команды free

В реальных условиях часто требуется наблюдать за использованием памяти в динамике. Команда free позволяет делать это с помощью опции -s (секунды), которая обновляет данные через регулярные интервалы.

Давайте настроим мониторинг памяти каждые 3 секунды, ограничив вывод пятью обновлениями:

free -h -s 3 -c 5

В этой команде используется несколько параметров:

  • -h: Отображение в удобном для чтения формате.
  • -s 3: Обновление каждые 3 секунды.
  • -c 5: Остановка после 5 циклов обновления.

Вы увидите, как данные обновляются каждые 3 секунды:

              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       2.4Gi       3.1Gi       642Mi       2.2Gi       4.4Gi
Swap:         2.0Gi          0B       2.0Gi

              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       2.4Gi       3.1Gi       642Mi       2.2Gi       4.4Gi
Swap:         2.0Gi          0B       2.0Gi

...

Такой непрерывный мониторинг помогает отследить изменения в потреблении памяти, что особенно полезно при поиске утечек памяти или анализе поведения конкретных приложений.

Нажмите Ctrl+C, если хотите прервать выполнение команды до завершения всех 5 циклов.

Отображение суммарного использования памяти

По умолчанию free показывает использование оперативной памяти и подкачки раздельно. Однако иногда нужно увидеть общую сумму используемых ресурсов. Для этого используется опция -t.

Выполните следующую команду:

free -h -t

Результат будет выглядеть примерно так:

              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       2.4Gi       3.1Gi       642Mi       2.2Gi       4.4Gi
Swap:         2.0Gi          0B       2.0Gi
Total:        9.8Gi       2.4Gi       5.1Gi

Опция -t добавляет внизу строку "Total", которая суммирует показатели оперативной памяти и свопа. Это дает быстрое представление об общем объеме доступной памяти в системе.

В этом выводе:

  • Строка Mem: показывает использование физической RAM.
  • Строка Swap: показывает использование пространства подкачки.
  • Строка Total: показывает сумму физической памяти и подкачки.

Такой суммарный вид удобен для оценки общих мощностей системы и их загруженности.

Резюме

Поздравляем! Вы успешно завершили лабораторную работу по использованию команды free для мониторинга системной памяти. Давайте вспомним, что вы изучили:

  1. Базовый запуск команды free для получения информации о памяти.
  2. Использование опции -h для вывода данных в удобном для чтения формате.
  3. Использование опции -m для отображения информации в мегабайтах.
  4. Непрерывный мониторинг ресурсов с помощью опций -s и -c.
  5. Отображение суммарного объема памяти (RAM + Swap) с помощью опции -t.

Эти навыки станут бесценными при управлении системными ресурсами, особенно когда нужно оптимизировать производительность или диагностировать проблемы с памятью.

Вот еще несколько опций команды free, которые мы не рассматривали в этой работе:

  • -b: Вывод данных в байтах.
  • -k: Вывод данных в килобайтах.
  • -g: Вывод данных в гигабайтах.
  • -w: Использование широкого формата вывода (разделяет buffer и cache).
  • -s: Обновление вывода каждые [SEC] секунд.
  • --si: Использование степеней 1000 вместо 1024 для расчетов.

Помните, что эффективное управление памятью — залог стабильности и высокой скорости работы системы. Регулярный мониторинг с помощью free поможет вам вовремя заметить и предотвратить проблемы.