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

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/SystemInformationandMonitoringGroup -.-> linux/free("Memory Reporting") subgraph Lab Skills linux/free -.-> lab-388496{{"Команда Linux free: мониторинг системной памяти"}} end

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

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

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

free

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

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

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

  • total: Общее количество физической ОЗУ и пространства подкачки (swap space).
  • 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 секунды в общей сложности в течение 5 обновлений:

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" внизу, которая суммирует использование памяти и пространства подкачки (swap space). Это позволяет быстро получить обзор общего объема системной памяти, включая как физическую ОЗУ, так и пространство подкачки.

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

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

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

Итоги

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

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

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

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

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

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