- Free linux для чего
- ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
- СООТВЕТСТВИЕ СТАНДАРТАМ
- СМ. ТАКЖЕ
- ЗАМЕЧАНИЯ
- Команда free в Linux
- Как использовать команду free
- Отображение использования памяти в удобочитаемом формате
- Отображение использования памяти в других показателях
- Отображение итоговых значений столбца
- Непрерывно печатать результат
- Выводы
- Команда Free (свободная оперативная память) в Linux
- Free Command in Linux
- Сколько свободной оперативной памяти мне доступно в моей системе Linux? Достаточно ли свободной памяти для установки и запуска новых приложений?
- Как использовать Free команду
- Отображение использования памяти в удобочитаемом формате
- Отображение использования памяти в других метриках
- Отображение итогов в столбце
- Постоянно печатать вывод
- Вывод
- Команда free в Linux с примерами
- Объясняя вывод команды Free в Linux
- Настройка вывода команды free
- Автоматизируйте команду free и запускайте ее непрерывно или периодически
- Заключение
Free linux для чего
malloc() распределяет size байтов и возвращает указатель на распределенную память. Память при этом не «очищается».
free() освобождает место в памяти, на которое указывает ptr , возвращенный, по-видимому, предшествующим вызовом функций malloc() , calloc() или realloc() . Иначе (или если уже вызывался free( ptr ) ) дальнейший ход событий непредсказуем. Если ptr равен NULL , то не выполняется никаких действий.
realloc() меняет размер блока памяти, на который указывает ptr, на размер, равный size байтов. Содержание будет неизменным в пределах наименьшего из старых и новых размеров, а новая распределенная память будет неинициализирована. Если ptr равно NULL , то данный вызов эквивалентен malloc(size) ; если размер равен нулю, то данный вызов эквивалентен free( ptr ) . Если только ptr не равен NULL , он, по-видимому, возвращен более ранним вызовом malloc() , calloc() или realloc() .
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
free() не возвращает значений.
realloc() возвращает указатель на память, которая должным образом повторно распределена для каждого типа переменных и может отличаться от ptr , или возвращает NULL , если запрос завершился с ошибкой. Если size был равен нулю, то возвращается либо NULL, либо указатель, который может быть передан free (). Если realloc() не выполнена, то блок памяти остается нетронутым: он не «очищается» и не перемещается.
СООТВЕТСТВИЕ СТАНДАРТАМ
СМ. ТАКЖЕ
ЗАМЕЧАНИЯ
Аварийные ситуации в malloc() , free() или realloc() почти всегда связаны с искажением данных кучи, например, с переполнением больших распределенных участков памяти или «освобождением» одного и того же указателя дважды.
Последние версии Linux библиотеки libc (более поздние по сравнению с 5.4.23) и GNU библиотеки libc (2.x) включают в себя реализации malloc, которые настраиваются с помощью переменных окружения. Когда включен MALLOC_CHECK_ , то используется специальная (менее эффективная) реализация, устойчивая к простейшим ошибкам, например, к двойным вызовам free() с теми же параметрами или превышению единственного байта (off-by-one bugs). Защититься от всех подобных ошибок, конечно, не получится, к тому же в этом случае могут происходить потери данных памяти. Если MALLOC_CHECK_ установлено равным нулю, то любое замеченное повреждение кучи незаметно игнорируется; если это значение установлено равным 1, то на stderr выводится сообщение об ошибке; а если устанавливаемое значение равно 2-м, то немедленно вызывается abort (). Это может быть полезно, так как иначе сбой может произойти гораздо позднее и настоящую причину ошибки будет очень трудно обнаружить.
Linux следует крайне самоуверенной стратегии распределения памяти. Это означает, что когда malloc() возвращает ненулевое значение, нет никаких гарантий, что память в действительности доступна. Если обнаружится, что системе не хватает памяти, то один или несколько процессов будут подло убиты OOM.
Источник
Команда 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 .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник
Команда Free (свободная оперативная память) в Linux
Free Command in Linux
Сколько свободной оперативной памяти мне доступно в моей системе Linux? Достаточно ли свободной памяти для установки и запуска новых приложений?
В системах Linux вы можете использовать free команду для получения подробного отчета об использовании памяти системой.
Команда free предоставляет информацию об общем объеме физической и подкачки памяти, а также о свободной и используемой памяти и пространстве подкачки в системе.
Как использовать Free команду
Синтаксис free команды следующий:
При использовании без какой-либо опции, free команда отобразит информацию о памяти и поменяет местами в кибибайтах. 1 кибибайт (КиБ) составляет 1024 байта.
Вывод будет включать три строки, заголовок, одну строку для памяти и одну для подкачки:
В старых версиях Linux выходные данные могут немного отличаться.
- total — это число представляет собой общий объем памяти, который может использоваться приложениями.
- used — использованная память Он рассчитывается как: used = total — free — buffers — cache
- free — Свободная / Неиспользуемая память.
- shared — этот столбец можно игнорировать, так как он не имеет смысла. Это здесь только для обратной совместимости.
- buff / cache — объединенная память, используемая буферами ядра, кешем страниц и слэбами. / эта память может быть восстановлена в любое время, если это необходимо приложениям. Если вы хотите, чтобы буферы и кеш отображались в двух отдельных столбцах, используйте эту -w опцию.
- available — оценка объема памяти, доступной для запуска новых приложений без замены.
Отображение использования памяти в удобочитаемом формате
Как мы видели в приведенном выше примере, по умолчанию free команда отображает информацию о памяти в кибибайтах. Чтобы просмотреть информацию в удобочитаемом формате (обычно мегабайты и гигабайты), используйте -h параметр:
Отображение использования памяти в других метриках
Команда free также позволяет указать единицу измерения памяти. Допустимые варианты:
- -b , —bytes — Вывести вывод в байтах.
- —kilo — Отображение вывода в килобайтах (1 КБ = 1000 байт).
- —mega — Показать вывод в мегабайтах.
- —giga — Отображение вывода в гигабайтах.
- —tera — Отображение вывода в терабайтах.
- -k , —kibi — Вывести вывод в кибибайтах. (1 КБ = 1024 байт). Это единица по умолчанию.
- -m , —mebi — выход дисплея в Mebibytes.
- -g , —gibi — выход дисплея в gibytes.
- —tebi — Отображать вывод в тебибайтах.
- —peti — Выводить вывод в пебибайтах.
- —si — Вместо 1024 используйте полномочия 1000. Например —mebi —si , равно —mega .
Например, чтобы показать вывод в мегабайтах, вы должны набрать:
Отображение итогов в столбце
Чтобы отобразить строку, отображающую итоги столбца, используйте -t параметр. Это даст вам сумму памяти и поменяет местами общие, использованные и свободные столбцы.
Постоянно печатать вывод
Для того, чтобы непрерывно отображать информацию о памяти об использовании экрана с -s , —seconds варианты с последующим номером , который определяет задержку.
Например, чтобы печатать информацию о памяти каждые пять секунд, вы должны выполнить:
Команда free будет продолжать отображать результат, пока вы не нажмете CTRL+C . Это похоже на поведение watch команды .
Для отображения результата для определенного числа раз использовать -c , —count вариант. В приведенном ниже примере команда напечатает результат десять раз:
Вывод
К настоящему времени вы должны хорошо понимать, как использовать и интерпретировать free команду. Для просмотра всех доступных параметров free командной строки введите man free в своем терминале.
Источник
Команда free в Linux с примерами
Объясняя вывод команды Free в Linux
Использовать команду Free в Linux довольно просто. Вот синтаксис для команды:
free [options]
Пример вывода для команды free может выглядеть следующим образом:
Команда free без параметров возвращает результаты для ‘total’, ‘used’, and ‘free’ объема памяти в вашей системе благодаря доступу к информации из ядра Linux. Она также отображает категории для ‘shared’, ‘buff/cache’, и ‘available’.
Чтобы избежать некоторой путаницы, давайте уточним, что означают эти термины.
- Total. Эта цифра представляет всю существующую память.
- Used вычисление общего значения оперативной памяти системы за вычетом выделенной свободной, разделяемой, буферной и кэш-памяти.
- Free – это память, которая не используется ни для каких целей.
- Shared, Buffer, и Cache идентифицируют память, используемую для нужд ядра / операционной системы. Буфер и кеш складываются вместе, а сумма указывается в разделе «buff/cache».
- Available память появляется в более новых версиях free и предназначена для того, чтобы дать конечному пользователю оценку того, сколько ресурсов памяти все еще открыто для использования.
Эти уточнения важны. Неправильное присвоение значения терминам «свободная или используемая память» может привести к неправильному пониманию использования памяти вашей системой.
Это может привести к тому, что неопытный пользователь будет ложно полагать, что его система нуждается в обновлении с увеличением ОЗУ. Обратите внимание, что в предыдущих версиях не было отображения доступной памяти. Пользователи могут ошибочно полагать, что из-за высокого использования памяти их аппаратное обеспечение недостаточно мощное. Предполагается, что доступная вкладка была создана, чтобы помочь компенсировать это распространенное недоразумение.
Операционная система Linux использует кэширование для повышения производительности. В общих чертах это означает, что определенный объем памяти отводится для использования до того, как он понадобится, чтобы он мог обрабатываться быстрее. Это стандартный процесс, и вам не о чем беспокоиться, если значения не кажутся очень необычными для вашего текущего использования.
Оценка «доступной» памяти, вероятно, достаточна для того, кто просто хочет знать, как их система реагирует на определенные приложения. Если вы не можете увидеть это поле, вам может потребоваться обновить ее до последней версии. Вы можете проверить текущую версию, запустив «free -V». Наша версия 3.3.15 имеет «free» в своем выводе.
Настройка вывода команды free
Вывод по умолчанию отображает информацию в килобайтах, но есть варианты для отображения в разных форматах, если вы предпочитаете. Запуск справки (free -help) отображает все возможные варианты, которые вы можете добавить.
На наш взгляд, наиболее полезная опция здесь -h, которая показывает вывод команды free в удобочитаемом формате.
Есть другие варианты. Они показывают ту же самую запрошенную информацию с некоторыми основными математическими преобразованиями. Мы думаем, что удобочитаемый вариант (free -h) является одним из наиболее эффективных для обычного пользователя.
Автоматизируйте команду free и запускайте ее непрерывно или периодически
Еще одна отличная особенность – возможность автоматизировать команду. Есть два варианта, которые помогают нам настроить этот инструмент:
- Есть параметр ‘-s’, которая запускает команду free в течение заданного интервала секунд, пока пользователь не закроет программу (^ + C).
- Существует также «-c», который можно использовать отдельно или в сочетании с параметром секунд. Если вы введете только «-c» и целое число (n), команда будет запускаться n раз. По умолчанию используются интервалы в одну секунду.
Допустим, вы хотите открыть серию приложений и посмотреть, как влияет ваша память. Для тестового вывода мы будем использовать читаемый человеком формат, используя степени 1000 (Gb) вместо 1024 (GiB). Мы собираемся записать в течение 20 секунд, чтобы проанализировать воздействие. Мы собираем данные каждые 5 секунд, и будем делать это за 4 цикла. Вот этот пример, отформатированный для командной строки и ее вывода:
Мы подождали несколько секунд, а затем открыли несколько вкладок браузера и получил доступ к некоторым закладкам. Стресс этих видов деятельности отмечен колебаниями объема производства. Обратите внимание, что эффект будет более выраженным при использовании выходного формата с меньшим округлением. В наших чисто демонстрационных целях это не нужно.
Если вы хотите постоянно отслеживать использование памяти командой free, но не хотите, чтобы ее вывод загромождал экран, вы можете использовать команду watch вместе с командой free.
Это покажет вам только один вывод для команды free, но этот вывод будет изменяться через регулярные промежутки времени.
Заключение
В этой статье показано, как начать использовать команду «free» в Linux. Надеюсь, вы найдете эту статью полезной и простой для понимания. «free» может использоваться для анализа использования системной памяти и может быть изменbyf с помощью различных опций для точной настройки вывода для ваших нужд.
Если у вас есть какие-либо вопросы или предложения, пожалуйста, сообщите нам об этом в разделе комментариев.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник