- Управление памятью в Linux. Физическая и Виртуальная память
- Что такое физическая память?
- Что такое виртуальная память?
- Физическая память vs. Виртуальная память
- Команды для управления памятью в Linux
- Файл /proc/meminfo
- Команда top
- Команда free
- Команда vmstat
- Как проверить использование памяти в Linux
- free команда
- top команда
- /proc/meminfo
- ps_mem Скрипт
- Выводы
- Как посмотреть информацию об оперативной памяти в Linux
- Свободная и занятая оперативная память
- Команда free
- Команда vmstat
- Команда top
- Команда htop
- Файл /proc/meminfo
- Тип памяти и частота
- Заключение
- Linux мониторинг памяти — основные утилиты для контроля
Управление памятью в Linux. Физическая и Виртуальная память
Обновл. 23 Июн 2021 |
Управление памятью позволяет процессам перемещаться между оперативной памятью и жестким диском во время выполнения программы. Более того, этот процесс отслеживает каждую ячейку памяти для корректного выделения процессов и освобождения памяти. Физическая память — это основная память, в которой находятся выполняющиеся в данный момент программы. С другой стороны, виртуальная память увеличивает емкость основной (физической) памяти (за счет жесткого диска) для выполнения программ, размер которых превышает объемы установленной в компьютере физической памяти.
Что такое физическая память?
Физическая память (или «ОЗУ», «RAM», «оперативка») — это энергозависимая память, установленная в компьютере. Для её работы требуется непрерывный поток электричества. Перебои с электропитанием или внезапное выключение компьютера могут привести к стиранию хранящихся в ней данных. Кроме того, эта память является линейно адресуемой. Другими словами, значения адресов памяти увеличиваются линейным образом.
Запуская и исполняя программы, процессор напрямую обращается к физической памяти. Обычно программы хранятся на жестком диске. Время доступа процессора к диску значительно превышает аналогичное время доступа к физической (оперативной) памяти. Чтобы процессор мог выполнять программы быстрее, они сначала помещаются в физическую (оперативную) память. После завершения своей работы, они возвращаются обратно на жесткий диск. Освобожденная таким образом память может быть выделена новой программе. При выполнении данные программы называются процессами.
Что такое виртуальная память?
Виртуальная память (или «логическая память») — это метод управления памятью, осуществляемый операционной системой, который позволяет программам задействовать значительно больше памяти, чем фактически установлено в компьютере. Например, если объем физической памяти компьютера составляет 4 ГБ, а виртуальной 16 ГБ, то программе может быть доступен объем виртуальной памяти вплоть до 16 ГБ.
Физическая память vs. Виртуальная память
Основное различие между физической и виртуальной памятью заключается в том, что физическая память относится к оперативной памяти компьютера, подключенной непосредственно к его материнской плате. Именно в ней находятся выполняемые в данный момент программы. А виртуальная память — это метод управления, расширяющий при помощи жесткого диска объем физической памяти, благодаря чему у пользователей появляется возможность запускать программы, требование к памяти которых превышает объем установленной в компьютере физической памяти.
Физическая память | Виртуальная память |
Непосредственно установленная в компьютере оперативная память. | Метод управления памятью, с помощью которого для программ создается иллюзия наличия в системе (физической) памяти, гораздо больше реально установленной. |
Работает быстрее. | Работает медленнее. |
Ограничена размером чипа ОЗУ. | Ограничена размером жесткого диска. |
Может напрямую обращаться к процессору. | Не может напрямую обращаться к процессору. |
Использует swapping. | Использует paging. |
Рассмотрим данные пункты:
#1: Тип памяти:
Физическая память является фактической памятью.
Виртуальная память является логической памятью.
#2: Скорость:
Физическая память быстрее виртуальной памяти.
#3: Размер:
Физическая память ограничена размером чипа ОЗУ.
Виртуальная память ограничена размером жесткого диска.
#4: Процессор:
Физическая память может напрямую обращаться к процессору, в то время как виртуальная память — нет.
#5: Методы, лежащие в основе:
Физическая (оперативная) память использует swapping. Swapping — это концепция управления памятью, при которой всякий раз, когда системе для хранения данных некоторого процесса не хватает оперативной (физической) памяти, она берет её из вторичного хранилища (например, жесткого диска), сбрасывая на него временно неиспользуемые данные. В Linux есть специальная программа управления памятью, которая управляет этим процессом. Всякий раз, когда ОЗУ не хватает памяти, программа управления памятью ищет все те неактивные блоки данных (страницы), присутствующие в ОЗУ, которые не использовались в течение длительного времени. Когда она успешно находит подобные блоки, то перемещает их в память подкачки (например, на жесткий диск). Таким образом, освобождается пространство оперативной памяти, и, следовательно, его можно использовать для некоторых других программ, которые нуждаются в срочной обработке.
Виртуальная память использует paging. Paging — это метод выделения памяти, при котором разным несмежным блокам памяти назначается фиксированный размер. Размер обычно составляет 4 КБ. Paging всегда выполняется между активными страницами (pages).
Команды для управления памятью в Linux
Давайте рассмотрим некоторые команды для управления памятью в Linux.
Файл /proc/meminfo
Файл /proc/meminfo содержит всю информацию, связанную с памятью. Для просмотра данного файла используйте команду cat:
Эта команда выводит множество параметров, связанных с памятью. Чтобы получить информацию о физической памяти из файла /proc/meminfo, используйте:
$ grep MemTotal /proc/meminfo
Чтобы получить информацию о виртуальной памяти из файла /proc/meminfo, используйте:
$ grep VmallocTotal /proc/meminfo
Команда top
Команда top позволяет отслеживать процессы и использование системных ресурсов в Linux в режиме реального времени. Когда вы запустите команду, то заметите, что значения в выходных данных продолжают изменяться с некоторым небольшим интервалом:
В верхней части отображается текущая статистика использования системных ресурсов. Нижняя часть содержит информацию о запущенных процессах. Вы можете перемещаться вверх и вниз по списку с помощью клавиш со стрелочками вверх/вниз и использовать q для выхода.
Команда free
Команда free отображает объем свободной и используемой памяти в системе.
Значения для каждого поля указаны в кибибайтах (КиБ).
Чтобы получить вывод в более удобочитаемом формате, используйте:
Команда vmstat
Команда vmstat — это инструмент мониторинга производительности в Linux, который предоставляет полезную информацию о процессах, памяти, операциях ввода-вывода, подкачке, диске и планировании процессора, а также приводит статистику виртуальной памяти вашей системы.
Поделиться в социальных сетях:
Источник
Как проверить использование памяти в Linux
При устранении неполадок, связанных с замедлением работы или неправильным поведением системы или приложений, в первую очередь необходимо проверить использование системной памяти.
В этой статье объясняется, как проверить использование ОЗУ в Linux с помощью нескольких разных команд.
free команда
free — это наиболее часто используемая команда для проверки использования памяти в системе Linux. Он отображает информацию об общей, используемой и свободной памяти.
Как правило, free вызывается с параметром -h что означает печать вывода в удобочитаемом формате:
Вот что означает каждый столбец:
- total — общий объем памяти, который может использоваться приложениями.
- used — Используемая память. Он рассчитывается как: used = total — free — buffers — cache
- бесплатно — Свободная / неиспользуемая память.
- общий — этот столбец можно игнорировать; он показан только для обратной совместимости.
- buff / cache — объединенная память, используемая буферами ядра, а также страничным кешем и блоками. Эта память может быть освобождена в любое время, если это необходимо приложениям.
- available — оценка объема памяти, доступного для запуска новых приложений без подкачки.
Команда free печатает информацию о физической памяти и системном свопе .
top команда
top — это утилита командной строки, отображающая информацию о запущенных процессах в реальном времени. Он также показывает сводку системы, включая использование памяти.
Чтобы вызвать команду, просто введите top :
Результат будет выглядеть примерно так:
Заголовок вывода включает информацию об общей, свободной и используемой физической памяти и памяти подкачки в системе.
Столбец %MEM предоставляет информацию об используемой доле доступной физической памяти для каждого запущенного процесса.
/proc/meminfo
Самый простой способ проверить использование оперативной памяти — отобразить содержимое виртуального файла /proc/meminfo . Этот файл используется командами free , top , ps и другими командами системной информации.
Используйте less или cat для просмотра содержимого файла /proc/meminfo :
Файл включает в себя большой объем информации об использовании системной памяти и подкачки:
Информация из файла /proc/meminfo может быть проанализирована и использована в сценариях оболочки.
ps_mem Скрипт
ps_mem — это скрипт Python, который сообщает об использовании памяти RAM для каждой программы. Он работает как с Python 2, так и с 3 и может быть установлен с помощью pip :
Для ps_mem требуются права администратора:
Вывод будет включать использование памяти каждой запущенной программой в порядке возрастания:
Этот сценарий полезен, когда вы хотите узнать, какая запущенная программа занимает большую часть вашей системной памяти.
Выводы
Мы показали вам несколько команд, которые вы можете использовать для проверки использования системной памяти.
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.
Источник
Как посмотреть информацию об оперативной памяти в Linux
Сегодня в статье рассмотрим, как получить информацию об оперативной памяти (RAM) в Linux.
Свободная и занятая оперативная память
Для получения информации о количестве свободной и занятой оперативной памяти в Linux можно использовать различные утилиты и команды. Рассмотрим несколько распространенных способов.
Команда free
Команда free позволяет осуществлять вывод информации об использовании оперативной памяти, как физической памяти (RAM — Random Access Memory), так и памяти из раздела или файла подкачки подкачки (SWAP), расположенного на жестком диске или твердотельном накопителе.
По умолчанию объем памяти выводится в килобайтах. Используя опции, можно выводить объем памяти в других форматах. Некоторые опции:
- -m — в мегабайтах
- -g — в гигабайтах
- -h — автоматически определить формат
Команда vmstat
Команда vmstat выводит различную статистику по использованию памяти. Используя ключ -s можно вывести подробную статистику в табличном виде.
Команда top
top — это утилита командной строки, которая используется для мониторинга процессов и используемых ресурсов компьютера.
В заголовке выводится информация об использованной оперативной памяти.
Команда htop
Утилита htop, также как и top, используется для мониторинга ресурсов и процессов.
Для установки утилиты htop в Ubuntu/Debian выполните команду:
Файл /proc/meminfo
Описанные выше команды, в качестве источника информации используют системные файлы из файлов, хранящихся в виртуальной файловой системе /proc. В файле /proc/meminfo содержится информация об использовании памяти. Выведем содержимое файла /proc/meminfo:
Тип памяти и частота
Рассмотрим, как получить информацию об установленных в компьютер модулях оперативной памяти. Воспользуемся командной dmidecode
Используем следующую команду:
В выводе команды будет информация о слотах оперативной памяти. Для каждого слота отображается установленный модуль оперативной памяти, его тип (поле Type), размер (поле Size), скорость/частота (поле Speed) и другая информация.
В зависимости от системы и оборудования не всегда удается получить все данные, поэтому некоторые поля могут быть пустыми или иметь надписи Not provided/Unknown.
Заключение
Мы рассмотрели различные способы для просмотра информации о доступной и занятой оперативной памяти, а также показали, как вывести информацию об установленных модулях оперативной памяти.
Если есть вопросы, то пишем в комментариях.
Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Linux мониторинг памяти — основные утилиты для контроля
Прежде всего, vmstat
В выводе утилиты присутствует блок memory со следующими колонками:
swpd — показывает память, выделенную под swap
free — свободная память
buff — зарезервировано системой для тех процессов которые в определенный момент будут нуждаться в памяти
cache — кэшированная память, то что было использовано системой недавно
Для swap выделяется количество входящих и исходящих блоков, которые обрабатываются в единицу времени:
si — in, количество блоков в секунду которое система считывает
so — out, количество блоков в секунду которое система записывает в swap
Размер блока зависим от формата файловой системы и настроек.
Можно запустить vmstat с ключем -а
vmstat -а
inactive — показывает память, выделенную для процессов и зарезервированную, которая при этом в определенных сиутациях может быть использована
active — используемая процессами
В самой доступной форме информация представлена в выводе free
free -h
shared — общая память для нескольких процессов, которая может задействоваться без системных вызовов ядра, обычно раздел можно увидеть смонтированным в /tmpfs
buff/cache — то же, что в vmstat, но два параметра представлены вместе
Всю информацию по серверу, в т.ч. о расходе оперативной памяти можно получить из top
shift + m обеспечит сортировку по памяти
Источник