Перейти к содержимому

Что показывает колонка total в выводе утилиты free

  • автор:

Команда free в Linux

Сколько свободной оперативной памяти доступно в моей системе Linux? Достаточно ли свободной памяти для установки и запуска новых приложений?

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

Команда free предоставляет информацию об общем объеме физической памяти и памяти подкачки , а также о свободной и используемой памяти.

Как использовать команду free

Синтаксис free команды следующий:

При использовании без какой-либо опции команда free будет отображать информацию о памяти и подкачке в кибибайтах. 1 кибибайт (КиБ) равен 1024 байтам.

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

Вот что означает каждый столбец:

  • total — это число представляет общий объем памяти, который может быть использован приложениями.
  • used — Используемая память. Он рассчитывается как: used = total — free — buffers — cache
  • бесплатно — Свободная / неиспользуемая память.
  • общий — этот столбец можно игнорировать, поскольку он не имеет значения. Это здесь только для обратной совместимости.
  • buff / cache — объединенная память, используемая буферами ядра, а также страничным кешем и блоками. Эта память может быть освобождена в любое время, если это необходимо приложениям. Если вы хотите, чтобы буферы и кеш отображались в двух отдельных столбцах, используйте параметр -w .
  • доступно — оценка объема памяти, доступного для запуска новых приложений без подкачки.

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

По умолчанию команда free показывает информацию о памяти в кибибайтах. Чтобы просмотреть информацию в удобочитаемом формате (обычно в мегабайтах и гигабайтах), используйте параметр -h :

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

Команда free также позволяет вам указать единицы измерения памяти. Допустимые варианты:

  • -b , —bytes — отображать вывод в байтах.
  • —kilo — отображать вывод в килобайтах (1 КБ = 1000 байт).
  • —mega — отображать вывод в мегабайтах.
  • —giga — Показать вывод в гигабайтах.
  • —tera — Показать вывод в терабайтах.
  • -k , —kibi — Показать вывод в кибибайтах. (1 КБ = 1024 байта). Это единица измерения по умолчанию.
  • -m , —mebi — Показать вывод в мебибайтах.
  • -g , —gibi — Показать вывод в гигабайтах.
  • —tebi — отображать вывод в тебибайтах.
  • —peti — Показать вывод в пебибайтах.
  • —si — вместо 1024 используйте —mebi —si 1000. Например, —mebi —si равно —mega .

Например, чтобы отобразить результат в мегабайтах, введите:

Отображение итоговых значений столбца

Чтобы отобразить строку, показывающую итоги столбца, используйте параметр -t . Это дает вам сумму памяти и свопа в столбцах total, used и free.

Непрерывно печатать результат

Чтобы постоянно отображать информацию о памяти на экране, вызовите free с параметром -s ( —seconds ), за которым следует число, определяющее задержку.

Например, чтобы распечатывать информацию о памяти каждые пять секунд, вы должны выполнить:

free команда будет продолжать отображать результат, пока вы не нажмете CTRL+C Это похоже на поведение команды watch .

Чтобы отображать результат определенное количество раз, используйте параметр -c ( —count ). В примере ниже команда выведет результат десять раз:

Выводы

Мы показали вам, как использовать free команду для проверки использования памяти системой и интерпретации вывода команды. Чтобы просмотреть все доступные параметры, введите в терминале man free .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Using the Linux free Command

The Linux free command outputs a summary of RAM usage, including total, used, free, shared, and available memory and swap space. The command helps monitor resource usage and allows an admin to determine if there’s enough room for running new programs.

In this tutorial, you will learn to use the free command in Linux.

Using the free command in Linux.

  • A system running Linux
  • Access to a terminal (Ctrl+Alt+T)

Note: The free command is a great way to monitor RAM usage on a server. However, the best way to secure a smooth server operation is to secure sufficient resources for running all apps. Choose one of our pre-configured Bare Metal Cloud server instances that best suits your needs and never run out of resources.

free Command Syntax

The free command takes the following syntax:

[options] are discussed in the following section, and they are optional.

Running the free command without options outputs information about memory and swap, expressed in kibibytes:

An example output for the free command in Linux.

Each column depicts the following:

Using the -h option to produce a human-readable output of the free command.

The command formats the output using the most appropriate unit for each value — KiB, MiB, GiB, etc.

Note: Limit the amount of system resources a user can consume with the ulimit command.

Example 2: Continuously Show Memory Usage

Use the -s option to continually refresh the free command output and monitor an app’s resource usage. Invoke the free command with the -s option and specify the delay between each output refresh:

Continuously reporting memory usage in Linux with the free command.

The example above instructs free to refresh the output every two seconds. Stop the process with Ctrl+C.

Example 3: Specify Output Units

Specify a unit for displaying the memory values uniformly. Use powers of 1024 (the default) or 1000.

1. For powers of 1024, use:

  • -b , —bytes
  • -k , —kibi
  • -m , —mebi
  • -g , —gibi
  • —tebi
  • —pebi

Specify units to use for the free command output.

The command produces an output with values expressed in mebibytes.

2. For powers of 1000, use:

  • —kilo
  • —mega
  • —giga
  • —tera
  • —peta

Use megabytes for expressing values in free command output.

The output values are expressed in megabytes. Alternatively, use the —si option followed by the corresponding power of 1024 unit:

Use the --si option for expressing values in megabytes.

The output values are expressed in megabytes.

Example 4: Print Output Multiple Times

Specify the -c option to instruct free to automatically quit after refreshing the output a specific number of times. In the following example, the command prints the result four times:

Instruct free to print an output multiple times.

After four updates, the command automatically quits.

Note: Run any command in regular intervals with the Linux watch command.

Example 5: Separate Buff and Cache Columns

The buff and cache areas interact and depend on each other, so they are combined in the output. To see the buffers and cache columns separately, specify the -w option:

Generate a wide output, separating the buffers and cache columns in the free command output.

The output now shows a buffers column and a cache column separately.

Example 6: Show the Total Memory Column

The —total option instructs free to print a Total line that sums the values from the total , used , and free columns of the Mem and Swap lines.

Show the Total line in free command output.

In the example above we instructed free to show the Total line and produce the output in a human-readable format.

Example 7: Combine Options

Combine different free command options to automate and facilitate memory monitoring in a system. For example, combine the -s and -c options to make free produce an output several times with a delay between refreshes:

Combining different options in the free command.

The command runs four times with a three-second delay between updates and expresses the values in mebibytes.

This tutorial showed how to use the free command to monitor memory usage on a Linux system. The command allows system administrators to monitor RAM usage on a system or server. Therefore, it is a helpful utility for identifying a potential issue. Learn more about system memory by reading our article on the differences between Intel Optane, RAM, and SSD.

Разбираем команду free: что должен знать администратор Linux

Для тех, кто не использует или не любит дистрибутивы Linux семейства RHEL, следует ориентироваться на версии ядра. В случае, когда мы говорим RHEL 6, то имеется в виду ядро 2.6.32 и ниже. Если говорим о RHEL 7/8, то 3.10 и выше.

Отвечая на вопрос «зачем». Как оказалось, у многих даже давно занимающихся администрированием Linux знания об использовании данной команды остались на уровне времён ядер 2.6.32. В то время как в новых ядрах, очень многие фичи были или инвертированы или же сильно изменены. И многие люди про это не в курсе.

Оригинал статьи лежит здесь. На случай, если кто-то мой перевод сочтёт негодным. 🙂

Разбираем команду free: что должен знать администратор Linux

Команда free популярна среди системных администраторов Unix/Linux. Это серьёзный инструмент, дающий полное представление об использовании памяти в ясном для человека виде.

В man странице про данную команду сказано, что free отображает общее количество свободной и используемой памяти в системе, включая пространство подкачки и физической памяти, а также буферы с кешами используемые ядром операционной системы. Данная информация собирается путём разбора содержимого /proc/meminfo.

Как и другие команды, free прошла через череду изменений на протяжении своего существования, дабы вывод её был осмысленным и точным, что требуется для дальнейшего принятия решений. В RHEL 6 вывод утилиты free ощутимо отличается от вывода такового на RHEL 7 или 8. Впрочем, ключевые параметры остаются неизменными в любой версии.

Если вы наберёте free -h в RHEL 6 (я использовал ключ -h для вывода в удобном для человека виде), то вывод будет похож на этот:

]# free -h
total used free shared buffers cached
Mem: 94G 44G 49G 161M 993M 1.3G
-/+ buffers/cache: 42G 52G
Swap: 15G 0B 15G

В RHEL 7/8 вывод выглядит иначе:

]# free -h
total used free shared buff/cache available
Mem: 15G 751M 1.2G 272M 13G 14G
Swap: 0B 0B 0B

В то же время, в RHEL 8 всё будет выглядеть следующим образом:

]# free -h
total used free shared buff/cache available
Mem: 819Mi 164Mi 146Mi 25Mi 509Mi 491Mi
Swap: 0B 0B 0B

Дабы сделать вывод программы более понятным для восприятия, в команде предусмотрены следующие опции: free -b, -k, -m, -g. Они отображают количество памяти в байтах, килобайтах, мегабайтах и гигабайтах. Также вы можете использовать команду free -h для отображения вывода в удобном, понятном для человека виде. Если нужны подробности, запустите free —help для дополнительной справки по возможностям программы.

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

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

Red Hat Enterprise Linux 6

В случае с RHEL 6, сфокусироваться следует на столбцах -/+ buffers/cache. На рис. 1 выше мы видим, что общее количество памяти равно 94 гигабайтам, где израсходовано 44 гигабайта и свободно 49 гигабайт. Вообще, это довольно нагруженная система и потребление памяти в ней выглядит высоким. Волноваться не стоит, хотя всё же следует посмотреть на столбец в -/+ buffers/cache. Данное значение показывает занятые 42 гигабайта и свободные 52 Гб. Это означает, что в реальности используется всего 42 гигабайта, а не 44. Значение задействованных 44 гигабайт включает себя ещё и кеши. Заметьте, даже простой взгляд на значение колонки used без учёта значения занятых кешей уже влияет на интерпретацию оценки производительности системы.

Теперь разберём смысл колонок со значениями буферов и кешей:

· buffers: память задействованная буферами ядра
· cached: память занятая “Page Cache” (страничным кешем).

Страничный кеш — не что иное, как данные / файлы, копируемые в оперативную память, в момент когда ядро операционной системы выполняет операции чтения или записи на диске. Причина тому — производительность операций ввода-вывода. Таким образом, ядро держит эти файлы в ОЗУ и высвобождает их в тот момент, когда они не требуются или когда пространство памяти запрашивается какой-либо командой или процессом в случае отсутствия свободной памяти в системе.

Red Hat Enterprise Linux 7/8

В операционных системах RHEL 7/8 уже следует сместить фокус на колонку available, поскольку колонка -/+ buffers/cache была удалена и заменена столбцом available. В то же время, столбцы buffers и cache были объединены в единое значение buff/cache и имеют ровно тот же смысл, что и ранее. Столбец available показывает оценку сколько памяти доступно приложениям без использования подкачки.

Так когда сисадмину всё же следует начать беспокоиться?

Исправна та система, которая показывает максимально возможный объём памяти достаточный для выполнения каких-либо задач, при этом демонстрирующая следующие ожидаемые признаки нормальной работы:

· Значение free близко к 0 или имеет очень небольшие значения
· Значение used близко к общему количеству RAM
· Значение доступной памяти в available (или же описанная в столбцах free -/+ buffers/cache) является относительно большой в сравнении с общим количеством памяти.
· Размер раздела или файла подкачки не меняется

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

· Значение столбца available (или же столбцов free -/+ buffers/cache) близко к нулю или весьма небольшое.
· Размер подкачки начинает расти или меняться из-за того, не хватает свободных страниц памяти и теперь необходимо их сбрасывать на диск
· В dmesg появляются сообщения об OutOfMemory-killer, которые проверяются командой grep -i kill /var/log/messages* или же dmesg | grep oom-killer.

Подведение итогов

Команда free — полезный инструмент, которая может очень рассказать системному администратору о том, что происходит в системе. Знание о различиях в выводе free может помочь в более точной интерпретации выдаваемых данных.

Free vs. Available Memory in Linux

At times we will need to know precisely how our Linux systems use memory. This article will examine how to use the free command-line utility to view memory usage on a Linux system. In doing so, we will clearly define the difference between free vs. available memory on Linux systems.

Free vs. Available memory explained.

Ok, let’s get right to it then. What exactly is free memory and how is it different from available memory?

Free memory is the amount of memory that is currently not used for anything . For this reason, especially on servers, I like to consider free memory as wasted memory. Once your applications/processes have launched and considerable uptime has passed, this number should almost always be small.

Available memory is the amount of memory that is available for allocation to new or existing processes. Available memory is then an estimation of how much memory is available for use without swapping .

The difference between free memory vs. available memory in Linux is, that free memory is not in use and sits there doing nothing. While available memory is used memory that includes but is not limited to caches and buffers, that can be freed without the performance penalty of using swap space.

Sponsored: ManageEngine – Application performance monitoring made simple

ManageEngine App-manager

ManageEngine’s Application Manager is a web-based APM and IT infrastructure management tool that provides a centralized console for managing various applications and underlying infrastructure. It supports monitoring of technologies such as web and application servers, databases, virtual systems, and cloud environments. It offers real-time performance monitoring, analytics, alerting, root cause analysis, and reporting. It also supports custom scripting and task automation for application performance management. — Read more.

Free vs. Available memory compared.

With this in mind, let’s look at two 60GB memory Linux servers. Server A and Server B . We are going to use the go-to command: free

To view free vs. available memory in Linux, login to your server and enter the following command:

The result should look something like these two screenshots below. I also ran the uptime command to confirm that both systems have been online for some time.

Free vs. Available Memory Server A

Server A: Has less than 1% free (wasted memory), 13GB available memory.

Free vs. Available Memory Server B

Server B: After 153 days of uptime, 30GB of memory is still wasted (free).

Above lies the difference between free vs. available memory in Linux. When you compare both systems, even though the load averages are similar (processing the same workloads), it is evident that one server is making use of almost 100% of its memory ( Server A ) while the other server is wasting more than 50% of its memory ( Server B ). Note, that both of these servers have 12 CPU cores and swap to RAID 10 NVMe storage – thanks to StackLinux.com.

Please note that the Linux Kernel will move memory pages least frequently used into swap space even if there is available memory.

When analyzing these systems, a sysadmin may ask a few pertinent questions: Is swapping slowing the performance of Server A? Or, is it opportunistic swapping? Should we downgrade memory on server B? Or, is traffic/workload growth expected soon? Should Server A be upgraded with more memory? Or, during peak hours/swap, does “load average” stay well below 12.00? Can Server B be configured to use more buffers and cache? Would such a change improve performance (is it worth changing)?

These are the questions that resulted in the current state of those above servers. Each admin will have to answer those questions and others, case by case, or hire an expert to do so.

Conclusion

Free vs. Available Memory Linux

Don’t be caught looking at “free” memory on your Linux system and jumping to conclusions because you should also consider available memory, buffers/caches and other factors as outlined.

I’ve written some other articles on this topic that you may find helpful:

    . . . (guest post by blog sponsor Datadog). . .

In addition to the free command, you can also use the following commands to check your Linux system’s memory usage:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *