Чтение команды из оперативной памяти осуществляется
Обновлено: 21.11.2024
Операционная система Linux включает в себя множество инструментов, каждый из которых готов помочь вам в администрировании ваших систем. От простых инструментов для работы с файлами и каталогами до очень сложных команд безопасности — в Linux мало что нельзя сделать. И хотя обычным пользователям настольных компьютеров может не понадобиться знакомиться с этими инструментами в командной строке, они обязательны для администраторов Linux. Почему? Во-первых, в какой-то момент вам придется работать с Linux-сервером без графического интерфейса. Во-вторых, инструменты командной строки часто предлагают гораздо больше возможностей и гибкости, чем альтернатива с графическим интерфейсом.
Определение использования памяти – это навык, который может вам понадобиться, если какое-то приложение станет мошенническим и захватит системную память. Когда это происходит, полезно знать, что у вас есть множество инструментов, которые помогут вам устранить неполадки. Или, может быть, вам нужно собрать информацию о разделе подкачки Linux или подробную информацию об установленной оперативной памяти? Для этого тоже есть команды. Давайте рассмотрим различные инструменты командной строки Linux, которые помогут вам проверить использование системной памяти. Эти инструменты не очень сложны в использовании, и в этой статье я покажу вам пять различных способов решить эту проблему.
Я буду демонстрировать на платформе Ubuntu Server 18.04. Однако вы должны найти все эти команды в выбранном вами дистрибутиве. Более того, вам не нужно ничего устанавливать (поскольку большинство этих инструментов уже включены).
Сказав это, приступим к работе.
Я хочу начать с самого очевидного инструмента. Команда top обеспечивает динамическое представление работающей системы в режиме реального времени. В эту системную сводку включена возможность проверки использования памяти для каждого процесса. Это очень важно, поскольку у вас может быть несколько итераций одной и той же команды, потребляющих разное количество памяти. Хотя вы не найдете этого на безголовом сервере, скажем, вы открыли Chrome и заметили, что ваша система замедляется. Введите команду top, чтобы увидеть, что в Chrome запущено множество процессов (по одному на вкладку — рис. 1).
Рисунок 1. Несколько экземпляров Chrome отображаются в верхней команде.
Chrome — не единственное приложение, отображающее несколько процессов. Вы видите запись Firefox на рисунке 1? Это основной процесс для Firefox, тогда как процессы веб-контента — это открытые вкладки. В верхней части вывода вы увидите системную статистику. На моей машине (System76 Leopard Extreme) доступно 16 ГБ оперативной памяти, из которых используется чуть более 10 ГБ. Затем вы можете просмотреть список и посмотреть, какой процент памяти использует каждый процесс.
Одна из вещей, для которых top очень полезна, — это обнаружение идентификаторов процессов (PID) служб, которые могли выйти из-под контроля. С помощью этих PID вы можете приступить к устранению неполадок (или уничтожению) проблемных задач.
Если вы хотите сделать top немного более удобным для памяти, введите команду top -o %MEM , которая заставит top отсортировать все процессы по используемой памяти. ( рис. 2 ).
Рисунок 2. Процесс сортировки по используемой памяти в верхней части.
Команда top также дает вам в режиме реального времени обновленную информацию о том, сколько пространства подкачки используется.
Однако иногда top может быть слишком много для ваших нужд. Вам может понадобиться только увидеть объем свободной и используемой памяти в вашей системе. Для этого есть бесплатная команда. Команда бесплатно отображает:
Общий объем свободной и используемой физической памяти
Общий объем памяти подкачки в системе
Буферы и кэши, используемые ядром
В окне терминала введите команду free . Вывод этой команды не в реальном времени. Вместо этого вы получите мгновенный снимок свободной и используемой памяти в данный момент ( рис. 3 ).
Рисунок 3. Вывод команды free простой и понятный.
Конечно, вы можете сделать бесплатно более удобным для пользователя, добавив параметр -m, например: free -m > . Это покажет использование памяти в МБ ( рис. 4 ).
Рисунок 4. Вывод команды free в более понятной форме.
Конечно, если ваша система хоть немного современная, вы захотите использовать параметр -g (гигабайты), как в free -g . р>
Если вам нужно общее количество памяти, вы можете добавить параметр t следующим образом: free -mt . Это просто суммирует объем памяти в столбцах ( рис. 5 ).
Рисунок 5. Свободная сумма столбцов памяти для вас.
вмстат
Еще один очень удобный инструмент, которым можно воспользоваться, — vmstat . Эта конкретная команда представляет собой пони с одним трюком, который сообщает статистику виртуальной памяти. Команда vmstat сообщит статистику по:
Лучший способ получить vmstat – использовать переключатель -s, например vmstat -s . Это будет отображать вашу статистику в одном столбце (что намного легче читать, чем отчет по умолчанию). Команда vmstat предоставит вам больше информации, чем нужно ( рис. 6 ), но чем больше, тем лучше (в таких случаях).
Рисунок 6. Использование команды vmstat для проверки использования памяти.
dmidecode
Что делать, если вы хотите узнать подробную информацию об установленной системной оперативной памяти? Для этого вы можете использовать команду dmidecode. Этот конкретный инструмент представляет собой декодер таблицы DMI, который выводит содержимое таблицы DMI системы в удобочитаемый формат. Если вы не уверены в том, что такое таблица DMI, это средство описания того, из чего состоит система (а также возможных изменений системы).
Чтобы запустить команду dmidecode, вам нужны права sudo. Поэтому введите команду sudo dmidecode -t 17 . Вывод команды (рисунок 7) может быть длинным, так как он отображает информацию обо всех устройствах с памятью. Поэтому, если у вас нет возможности прокрутки, вы можете отправить вывод этой команды в файл, например так: sudo dmidecode –t 17 > dmi_infoI, или направить его в < em>less, например sudo dmidecode | меньше .
Рисунок 7: Вывод команды dmidecode.
/proc/meminfo
Вы можете спросить себя: "Откуда эти команды получают эту информацию?". В некоторых случаях они получают его из файла /proc/meminfo. Угадай, что? Вы можете прочитать этот файл напрямую с помощью команды less /proc/meminfo . С помощью команды less вы можете прокручивать этот длинный вывод вверх и вниз, чтобы найти именно то, что вам нужно ( рис. 8 ).
Рисунок 8. Вывод команды less /proc/meminfo.
Вы должны знать одну вещь о /proc/meminfo: это не настоящий файл. Вместо этого /pro/meminfo — это виртуальный файл, содержащий динамическую информацию о системе в реальном времени. В частности, вы захотите проверить значения для:
Есть ли команда, которая отслеживает, сколько оперативной памяти было использовано во время работы скрипта? Чтобы узнать, сколько оперативной памяти доступно, можно использовать free , но эта команда не подходит для указанной выше задачи.
Почему именно вы спрашиваете? Почему вас больше заботит физическая оперативная память, чем виртуальное адресное пространство, используемое вашим процессом Python?
@BasileStarynkevitch В вопросе нет ничего, что указывало бы на то, что пользователь хочет знать только о физической оперативной памяти.
Оперативная память только физическая. Это конкретное устройство. Виртуальная память (или просто память) — это абстракция. Не существует такой вещи, как «нефизическая» оперативная память, и обычно нас заботит не оперативная память, а (виртуальная) память. ОП мог бы спросить, «сколько памяти было использовано»
3 ответа 3
Команда time(1) (вам может потребоваться установить ее - возможно, как пакет time-, она должна быть в /usr/bin/time ) принимает множество аргументов, включая строку формата (с -f или -- format ), который понимает (среди прочего)
Не путайте команду /usr/bin/time со встроенной командой bash time. Возможно, вам придется ввести полный путь к файлу /usr/bin/time (чтобы попросить вашу оболочку запустить команду, а не встроенную) или ввести команду time или \time (спасибо Тоби Спейту и Стрелке за комментарии).
Поэтому вы можете попробовать (RSS является размером резидентного набора)
Вы также можете попробовать
сколько оперативной памяти использовалось при выполнении скрипта?
и это показывает неправильное представление с вашей стороны. Прикладные программы, работающие в Linux (или любой современной многопроцессорной операционной системе), используют виртуальную память, и каждый процесс (включая процесс Python, выполняющий ваш скрипт) имеет собственное виртуальное адресное пространство. Процесс не запускается напрямую в физической оперативной памяти, но имеет собственное виртуальное адресное пространство (и работает в нем), а ядро реализует виртуальную память с помощью сложного подкачки по запросу. используя методы ленивого копирования при записи, и настраивает MMU. Оперативная память — это физическое устройство и ресурс, который используется ядром и управляется внутренне ядром для реализации виртуальной памяти (читайте также о кэше страниц и о перегрузке).
Возможно, вы захотите потратить несколько дней на изучение операционных систем.Я рекомендую прочитать книгу Operating Systems: Three Easy Pieces, которую можно бесплатно загрузить. ОЗУ используется всей операционной системой (не напрямую отдельными процессами), и фактические страницы в ОЗУ для данного процесса могут меняться во времени (и могут каким-то образом использоваться совместно с другими процессами). Следовательно, потребление ОЗУ данным процессом не определено точно, поскольку оно постоянно меняется (вам может потребоваться его среднее значение или его пиковое значение и т. д.), а также размер его виртуального адресного пространства.
Вы также можете использовать (особенно если ваш скрипт выполняется несколько секунд) утилиту top(1) (возможно, в каком-то другом терминале) или ps(1) или pmap(1) — возможно, используя watch(1) для повторения эта команда ps или pmap. Вы даже можете напрямую использовать /proc/ (см. proc(5). ), возможно, как watch cat /proc/$(pidof python)/status или /proc/$(pidof python)/stat или /proc/$(pidof python) /карты и т. д.
Но использование оперативной памяти (ядром для какого-либо процесса) сильно меняется со временем для данного процесса (и даже его виртуальное адресное пространство меняется, например, при вызовах mmap(2) и munmap используется ld-linux(8), dlopen(3), malloc(3) & free и многими другими функциями, необходимыми для твоего интерпретатора Python.
Вы также можете использовать strace(1) для понимания системных вызовов, выполняемых Python для вашего скрипта (чтобы понять, как он использует mmap, munmap и другие системные вызовы(2)). Вы можете ограничить strace с помощью -e trace=%memory или -e trace=memory, чтобы получать только системные вызовы, связанные с памятью (т. е. с виртуальным адресным пространством).
Кстати, функция tracemalloc Python также может быть полезна.
Полагаю, вас интересует только виртуальная память, то есть виртуальное адресное пространство (но не ОЗУ), используемое интерпретатором Python для запуска вашего скрипта Python. И это меняется во время выполнения процесса. На самом деле знать RSS (или максимальный пиковый размер виртуального адресного пространства) было бы полезнее.
Очень важно, чтобы ваша система Linux работала на оптимальном уровне. Несколько простых команд терминала обеспечивают доступ ко всей необходимой информации и помогают отслеживать статистику использования памяти.
В этом руководстве вы узнаете о пяти мощных командах для проверки использования памяти в Linux.
Мы также предоставляем подробные объяснения того, что они делают, и, что более важно, как интерпретировать результаты. Команды будут работать практически со всеми дистрибутивами Linux. В данном случае команды и результаты представлены с использованием Ubuntu 18.04.
- Доступ к командной строке/терминалу
- Пользователь с правами sudo
- Менеджер пакетов apt
Команды для проверки использования памяти в Linux
Команда cat для отображения информации о памяти Linux
Ввод cat /proc/meminfo в вашем терминале открывает файл /proc/meminfo.
Это виртуальный файл, в котором сообщается об объеме доступной и используемой памяти. Он содержит информацию в режиме реального времени об использовании системной памяти, а также о буферах и разделяемой памяти, используемых ядром. Результат может незначительно отличаться в зависимости от используемой архитектуры и операционной системы.
Это пример того, как выглядит файл /proc/meminfo в Ubuntu 18.04:
Терминал отображает информацию в килобайтах.
free команда для отображения объема физической памяти и памяти подкачки
Набрав free в командном терминале, вы получите следующий результат:
Данные представляют собой объем используемой/доступной памяти и объем памяти подкачки в килобайтах.
Подробное описание, приведенное ниже, содержит объяснение каждого значения на случай, если вам понадобится помощь в анализе результатов.
- Процессы
- r: количество процессов, ожидающих выполнения.
- b: количество процессов в непрерывном спящем режиме.
- swpd: объем используемой виртуальной памяти.
- свободно: объем свободной памяти.
- buff: объем памяти, используемый в качестве буферов.
- кеш: объем памяти, используемый в качестве кеша.
- si: память, загруженная с диска (/s).
- итак: память заменена на диск (/s).
- bi: количество блоков, полученных от блочного устройства (блоков в секунду).
- bo: количество блоков, отправленных на блочное устройство (блоков в секунду).
- in: количество прерываний в секунду, включая часы.
- cs: количество переключений контекста в секунду.
- нас: время, потраченное на выполнение кода, отличного от ядра. (время пользователя, включая приятное время)
- sy: время, потраченное на выполнение кода ядра. (системное время)
- id: время простоя. До Linux 2.5.41 это включает время ожидания ввода-вывода.
- wa: время, затраченное на ожидание ввода-вывода. До Linux 2.5.41 включался в режим ожидания.
- st: Время, украденное у виртуальной машины. До Linux 2.6.11 неизвестно.
команда top для проверки использования памяти
Команда top полезна для проверки использования памяти и ЦП для каждого процесса. Он отображает информацию о:
- время работы
- средняя нагрузка
- задачи выполняются
- количество пользователей, вошедших в систему
- количество ЦП/загрузка ЦП
- системные процессы памяти/подкачки
Данные постоянно обновляются, что позволяет вам следить за процессами в режиме реального времени.
Помимо предоставления важной информации о памяти, команда top предоставляет ограниченный интерактивный интерфейс. Можно управлять операциями и настраивать их с помощью параметров командной строки.
Команда man в Linux man top предоставляет полный список всех доступных вариантов.
Команда htop для поиска загрузки памяти каждого процесса
Информация, которую предоставляет команда htop, аналогична команде top. Однако реальным преимуществом команды htop является ее удобная среда и улучшенные элементы управления.
Эта команда использует цвет для вывода, предоставляет полные командные строки для процессов, а также возможность прокрутки как по вертикали, так и по горизонтали.
Появляется следующий вывод:
- В верхнем сегменте представлена сводная информация, а также графические и текстовые счетчики.
- Нижний раздел структурирует подробные данные для каждого процесса. Это позволяет с легкостью выполнять действия над отдельными процессами.
- Ярлыки, перечисленные в нижней части экрана, позволят вам управлять процессами и настраивать их быстро и без необходимости вводить определенные команды.
Примечание. Если при попытке запустить команду htop появляется сообщение «Команда ‘htop’ не найдена», вам необходимо сначала установить функцию htop:
В качестве альтернативы используйте следующую команду:
Проверка использования памяти в Linux с помощью графического интерфейса
Использование графического интерфейса для администрирования сервера не является общепринятой практикой. Однако некоторые наборы данных намного нагляднее благодаря визуальному представлению использования памяти.
Для доступа к системному монитору:
- Перейдите к Показать приложения.
- Введите системный монитор в строке поиска и получите доступ к приложению.
- Выберите вкладку "Ресурсы".
- Отображается графический обзор потребления памяти в режиме реального времени, включая историческую информацию.
В этом руководстве представлено несколько вариантов проверки использования памяти в вашей системе Linux. Мы узнали, что одна команда предоставляет множество ценных данных для будущего анализа. Очень важно научиться правильно интерпретировать информацию.
Дэйв Маккей
Дэйв Маккей
ПисательФатмавати Ахмад Заэнури/Shutterstock
Существует множество способов получить сведения об использовании памяти в вашей системе Linux. В этом обзоре мы рассмотрим наиболее часто используемые методы командной строки: free, vmstat и top. Мы также рассмотрим непосредственное чтение /proc/meminfo.
Как Linux использует оперативную память
Оперативная память — это ограниченный ресурс, часть которого требуется всем процессам, таким как приложения и демоны. Его так много доступно. Ядро решает споры о памяти и распределяет нормированную память всем голодным процессам.Это похоже на птицу-мать, у которой больше раскрытых клювов, чем у нее есть личинка.
Неиспользуемая оперативная память — это потраченная впустую оперативная память. Linux использует любую свободную оперативную память для таких вещей, как файловый буфер, чтобы поддерживать оптимальную производительность вашего компьютера. Легко создать впечатление, что оперативная память вашей системы занята каким-то неконтролируемым процессом или утечкой памяти, но это бывает редко.
Обычно ядро упорно выполняет свою работу в фоновом режиме. Если есть другие потребности в ОЗУ, которое ядро переманило для собственных устройств, оно мгновенно освободит память, так что никакого вреда не будет.
Если ядро решает, что более эффективно начать использовать пространство подкачки, оно также использует это. Существует много путаницы со значением подкачки в Linux и когда ядро начнет использовать подкачку. Неправда, что значение подкачки устанавливает порог использования ОЗУ, при котором включается подкачка.
А теперь давайте рассмотрим различные методы, которые вы можете использовать в окне терминала, чтобы увидеть использование оперативной памяти на вашем компьютере с Linux.
Свободная команда
Команда free дает вам таблицу с общей, используемой, свободной, общей, буферной/кэш-памятью и доступной оперативной памятью на вашем компьютере. Он также показывает общий объем настроенного пространства подкачки, а также объем используемого и доступного пространства.
В нашем примере мы будем использовать параметр -m (мебибайты). Однако вы также можете использовать -b (байты), -k (кибибайты) или -g (гибибайты).
Вводим следующую команду:
Вот что мы получаем:
Столбцы Mem содержат следующую информацию:
- Всего: общий объем физической оперативной памяти на этом компьютере.
- Использовано: сумма Free+Buffers+Cache, вычтенная из общей суммы.
- Свободно: объем неиспользуемой памяти.
- Общая: объем памяти, используемый файловой системой tmpfs.
- Buff/cache: объем памяти, используемый для буферов и кэша. При необходимости это может быть быстро выпущено ядром.
- Доступно. Это оценка памяти, доступной для обслуживания запросов памяти от приложений и любого другого рабочего программного обеспечения на вашем компьютере.
Столбцы Swap содержат следующую информацию:
- Всего: размер раздела или файла подкачки.
- Используется: объем используемого пространства подкачки.
- Свободно: объем оставшегося (неиспользованного) пространства подкачки.
Вы также можете воспользоваться следующим изящным приемом, который мы позаимствовали у одного из наших читателей, чтобы увидеть процент используемого пространства подкачки:
Команда vmstat
Невозможно иметь хорошее представление о том, как используется оперативная память в вашем Linux-компьютере, без оценки состояния вашего пространства подкачки. ОЗУ и пространство подкачки тесно связаны друг с другом.
Вы можете использовать команду vmstat для более глубокого изучения того, как используется пространство подкачки (или виртуальная память). Он предоставляет отчет о различной статистике, связанной с подкачкой, на основе средних значений с момента последней перезагрузки.
Введите следующее:
Это вывод без переноса:
В этом отчете много точек данных, поэтому мы разберем их:
- Процесс:
- r: количество «запускаемых» процессов. Они либо запущены, либо ждут следующего кванта циклов ЦП с разделением по времени.
- b: количество процессов в непрерывном спящем режиме. Они не спят, а выполняют блокирующий системный вызов. Их нельзя прервать, пока они не завершат свое текущее действие. Как правило, этот процесс представляет собой драйвер устройства, ожидающий освобождения некоторого ресурса. Любые прерывания в очереди для этого процесса обрабатываются, когда процесс возобновляет свою обычную деятельность.
- swpd: объем используемой виртуальной памяти, т. е. объем памяти, который был выгружен.
- свободно: объем свободной (неиспользуемой) памяти.
- buff: объем памяти, используемый в качестве буферов.
- кеш: объем памяти, используемый в качестве кеша.
- si: объем виртуальной памяти, выгружаемой из области подкачки.
- so: объем виртуальной памяти, выгружаемой в пространство подкачки.
- bi: Blocks in. Количество блоков данных, используемых для переключения виртуальной памяти обратно в RAM.
- бо: Блокируется. Количество блоков данных, используемых для свопинга виртуальной памяти из ОЗУ в пространство подкачки.
- in: количество прерываний в секунду, включая часы.
- cs: количество переключений контекста в секунду.Переключение контекста — это когда ядро переключается с системного на обработку в пользовательском режиме.
- нас: время, затрачиваемое на выполнение пользовательского (неядерного) кода.
- sy: время, потраченное на выполнение кода ядра.
- id: время простоя.
- wa: время ожидания ввода или вывода.
- st: время, которое виртуальная машина должна ждать, пока гипервизор завершит обслуживание других виртуальных машин, прежде чем она сможет вернуться и заняться этой виртуальной машиной.
Главная команда
Команда top отображает экран, заполненный информацией. Значения обновляются каждые несколько секунд.
Чтобы использовать его, введите следующее:
Кнопка «e» была нажата. Это изменило отображение на мегабайты, которые легче визуально проанализировать, чем длинные строки, представляющие байты. В верхней части экрана есть пять строк информации и нижняя панель со столбцами данных.
Вот информация, которую вы найдете в каждой строке:
- Первая строка: время, продолжительность работы компьютера, количество пользователей, вошедших в систему, и средняя нагрузка за последние 1, 5 и 15 минут.
- Вторая строка: количество задач и их состояния: выполняется, остановлено, находится в спящем режиме или зомби.
- Третья строка: информация о ЦП (см. разбивку полей ниже).
- Четвертая строка: общий объем физической памяти, а также объем свободной, используемой, буферизованной или кэшированной памяти.
- Пятая строка: общий объем памяти подкачки, а также объем свободной, используемой и доступной памяти (с учетом памяти, которая, как ожидается, может быть восстановлена из кешей).
Поля CPU в третьей строке выглядят следующим образом:
- нас: время, затрачиваемое ЦП на выполнение процессов для пользователей в пользовательском пространстве.
- sy: время, затраченное ЦП на выполнение системных процессов «пространства ядра».
- ni: время, затраченное ЦП на выполнение процессов с установленным вручную значением nice.
- id: время простоя процессора.
- wa: время, которое ЦП тратит на ожидание завершения ввода-вывода.
- hi: время, затраченное ЦП на обслуживание аппаратных прерываний.
- si: время, затраченное ЦП на обслуживание программных прерываний.
- st (steal time): время, которое ЦП теряет из-за работы виртуальных машин.
Возможно, вам придется нажимать клавиши со стрелками влево или вправо, чтобы увидеть все столбцы. Значения в каждом столбце описаны ниже:
- PID: идентификатор процесса.
- USER: имя владельца процесса.
- PR: приоритет процесса.
- NI: Хорошая ценность процесса.
- VIRT: виртуальная память, используемая процессом.
- RES: резидентная память, используемая процессом.
- SHR: общая память, используемая процессом.
- S: статус процесса. (См. список значений, которые может принимать это поле ниже).
- %CPU: доля процессорного времени, используемого процессом с момента последнего обновления.
- %MEM: доля используемой физической памяти.
- ВРЕМЯ+: общее время ЦП, используемое задачей, в сотых долях секунды.
- КОМАНДА: Имя или строка команды (имя + параметры). (Этот столбец находится за пределами экрана справа на изображении выше.)
Статус, отображаемый в столбце S, может быть одним из следующих:
Нажмите Q, чтобы выйти наверх .
Чтение /proc/meminfo
Многие (и, скорее всего, большинство) инструментов в Linux, которые сообщают статистику памяти, извлекают свою информацию из псевдофайловой системы /proc/meminfo . Мы можем использовать команду cat или less, чтобы сделать то же самое.
Вводим следующее:
Вы можете видеть разные поля в зависимости от работающего ядра и архитектуры процессора. На нашей виртуальной машине мы получили следующие результаты:
- MemTotal: общий объем доступной оперативной памяти (кроме нескольких зарезервированных битов и двоичного кода ядра).
- MemFree: сумма LowFree + HighFree . Объем оперативной памяти, доступный в настоящее время.
- MemAvailable: расчетный объем памяти, доступный для запуска новых приложений без подкачки.
- Буферы: временное хранилище необработанных дисковых блоков. Это уменьшает ввод и вывод жесткого диска. Это также ускоряет доступ к последующим запросам тех же данных, поскольку они уже находятся в памяти.
- Кэшированные: кэшированные страницы, прочитанные из файлов на жестком диске (не включая SwapCached ).
- SwapCached: память, которая была выгружена и возвращена, а копия осталась в пространстве подкачки.
- Активно: недавно использованная память. Его не восстанавливают без крайней необходимости.
- Неактивно: память, которая использовалась, но не использовалась в последний раз. Вероятный кандидат на восстановление.
- Активно (анон): память, выделенная для файлов, созданных в псевдофайловой системе tmpfs. Анонимные файлы не хранятся на жестком диске.
- Inactive(anon): объем анонимной памяти, памяти tmpfs и shmem, которая является кандидатом на вытеснение (восстановление памяти).
- Активный (файл): объем памяти файлового кэша, который используется или использовался с момента предыдущего цикла высвобождения памяти.
- Неактивно(файл): объем файловой кэш-памяти, прочитанной с жесткого диска, который может быть освобожден.
- Невыносимый: объем памяти, который должен быть вытесняемым, но не потому, что он заблокирован в памяти процессами пользовательского пространства.
- Mlocked: общий объем памяти, который невозможно удалить, поскольку он заблокирован процессами пользовательского пространства.
- HighTotal: общий объем HighMem, который используется программами пользовательского пространства и кэшем страниц. Ядро может получить доступ к этой зоне памяти, но он медленнее, чем LowMem.
- HighFree: объем свободной памяти HighMem.
- LowTotal: объем LowMem, который доступен для всех тех же целей, что и HighMem, но также и для использования ядром в собственных целях.
- LowFree: объем свободной памяти LowMem.
- MmapCopy: объем памяти, сопоставленный с данными файла.
- SwapTotal: общий объем доступного пространства подкачки.
- SwapFree: объем пространства подкачки, который в настоящее время не используется.
- Грязный: объем памяти, ожидающий обратной записи на диск.
- Обратная запись: память активно записывается обратно на диск.
- AnonPages: страницы, не поддерживаемые файлами, сопоставляются с таблицами страниц пространства пользователя.
- Сопоставленные: файлы (например, библиотеки), сопоставленные с памятью.
- Shmem: объем памяти, потребляемый в псевдофайловых системах tmpfs.
- KReclaimable: выделение памяти ядром, которое ядро попытается вернуть, если потребность в памяти будет достаточно серьезной.
- Slab: Кэш структур данных в ядре.
- SReclaimable: объем Slab-памяти, который может быть освобожден, например кэши.
- SUnreclaim: объем Slab-памяти, который нельзя восстановить.
- KernelStack: объем памяти, выделенный для стеков ядра.
- PageTables: объем памяти, выделенный для нижнего уровня таблиц страниц.
- Быстрые списки. Поскольку выделение и удаление таблиц страниц — очень частая операция, очень важно, чтобы она выполнялась как можно быстрее. Таким образом, страницы, используемые для таблиц страниц, кэшируются в ряде различных списков, называемых «быстрыми списками».
- NFS_Unstable: страницы сетевой файловой системы (NFS), полученные сервером, но еще не записанные в энергонезависимое хранилище.
- Bounce: память, используемая для буферов возврата блочного устройства. Буфер отскока размещается в памяти достаточно низко, чтобы устройство могло получить к нему прямой доступ. Затем данные копируются на нужную страницу пользователя в HighMem.
- WritebackTmp: память, используемая файловой системой в пользовательском пространстве (FUSE) для временных буферов обратной записи.
- CommitLimit: общий объем памяти, доступный в настоящее время для выделения в системе.
- Committed_AS: предполагаемый объем памяти для удовлетворения всех текущих потребностей. Если программа запрашивает некоторое количество ОЗУ, запрос записывается, но ОЗУ выделяется только после того, как программа начинает его использовать. Он также выделяется только по мере необходимости, вплоть до максимальной суммы, зарезервированной программой. Может быть «выделено» больше памяти, чем фактически может быть доставлено. Если все программы попытаются обналичить свои микросхемы оперативной памяти одновременно, казино с памятью может разориться (и ему придется идти напролом к финансистам подкачки).
- VmallocTotal: общий размер области памяти vmalloc.
- VmallocUsed: объем используемой области vmalloc. Начиная с Linux 4.4, это поле больше не вычисляется, оно жестко запрограммировано.
- VmallocChunk: самый большой непрерывный блок свободной области vmalloc.
- HardwareCorrupted: объем памяти, помеченный как имеющий проблемы с повреждением физической памяти. Он не будет выделен.
- LazyFree: объем памяти в состоянии MADV_FREE. Когда приложение устанавливает флаг MADV_FREE для диапазона страниц, это означает, что они ему больше не нужны, и теперь они являются кандидатами на освобождение. Фактическое восстановление может быть отложено до тех пор, пока не возникнет достаточный спрос на память. Если приложение начнет запись на страницы, возврат можно отменить.
- AnonHugePages: Огромные страницы без резервных файлов, сопоставленные с таблицами страниц пользовательского пространства. Страницы, не поддерживаемые файлами, не были получены из файла на жестком диске.
- ShmemHugePages: объем памяти, используемый общей памятью ( shmem ) и псевдофайловыми системами ( tmpfs ), выделенными для больших страниц.
- ShmemPmdMapped: объем общей памяти, отображаемой в пространство пользователя с огромными страницами.
- CmaTotal: количество страниц CMA (распределителя непрерывной памяти). Они используются устройствами, которые могут обмениваться данными только со смежными областями памяти.
- CmaFree: количество свободных страниц CMA (распределителя непрерывной памяти).
- HugePages_Total: Огромный размер пула страниц.
- HugePages_Free: количество нераспределенных огромных страниц в пуле.
- HugePages_Rsvd: количество зарезервированных огромных страниц.Обязательство по распределению принято, но выделение еще не произошло.
- HugePages_Surp: количество огромных страниц в пуле выше заданного системного значения.
- Hugepagesize: размер огромных страниц.
- DirectMap4k: количество байтов ОЗУ, сопоставленных со страницами размером 4 КБ.
- DirectMap4M: количество байтов ОЗУ, сопоставленное со страницами размером 4 МБ.
- DirectMap2M: количество байтов ОЗУ, сопоставленных со страницами размером 2 МБ.
- DirectMap1G: количество байтов ОЗУ, сопоставленное страницам размером 2 ГБ.
Как обычно в Linux, есть несколько способов получить краткий обзор, и всегда есть хотя бы один способ углубиться в детали.
Вероятно, вы будете регулярно использовать free , top и vmstate и хранить /proc/meminfo в резерве на случай, если вам нужно будет углубиться в изучение конкретной проблемы.
Команды Linux Файлы tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm Процессы alias · screen · top · nice · renice · прогресс · strace · systemd · tmux · chsh · история · at · пакетное · бесплатное · которое · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · стена · yes · kill · спать · sudo · su · время · groupadd · usermod · группы · lshw · выключение · перезагрузка · halt · poweroff · passwd · lscpu · crontab · date · bg · fg < /tbody>Сеть netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · копать · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw - › Легко понять использование оперативной памяти Linux с помощью Smem
- ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
- › Как установить Google Play Маркет в Windows 11
- › Почему прозрачные чехлы для телефонов желтеют?
- › Как восстановить метки панели задач в Windows 11
- › Почему не было Windows 9?
- › Что означает XD и как вы его используете?
Читайте также: