Linux использует модель использования памяти

Обновлено: 04.07.2024

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

Часто важно проверять использование памяти и память, используемую каждым процессом на серверах, чтобы не было нехватки ресурсов и чтобы пользователи могли получить доступ к серверу. Например веб-сайт. Если вы используете веб-сервер, то сервер должен иметь достаточно памяти для обслуживания посетителей сайта. В противном случае сайт стал бы очень медленным или даже перестал бы работать в случае всплеска трафика просто потому, что не хватило бы памяти. Это похоже на то, что происходит на вашем настольном ПК.

1. бесплатная команда

Команда free — это самая простая и удобная команда для проверки использования памяти в Linux. Вот краткий пример

Параметр m отображает все данные в мегабайтах. Всего ОС 7976 МБ — это общий объем оперативной памяти, установленной в системе, то есть 8 ГБ. Столбец «используется» показывает объем оперативной памяти, использованной linux, в данном случае около 6,4 ГБ. Вывод довольно понятен. Загвоздка здесь в столбце cached and buffers. Вторая строка говорит о том, что 4,6 ГБ свободно. Это свободная память в первой строке, добавленная к буферам и кешированному объему памяти.

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

2. /proc/meminfo

Следующий способ проверить использование памяти — прочитать файл /proc/meminfo. Знайте, что файловая система /proc не содержит реальных файлов. Это скорее виртуальные файлы, содержащие динамическую информацию о ядре и системе.

Проверьте значения MemTotal, MemFree, Buffers, Cached, SwapTotal, SwapFree.
Они указывают те же значения использования памяти, что и команда free.

3. вмстат

Команда vmstat с параметром s выводит статистику использования памяти так же, как и команда proc. Вот пример

В первых нескольких строках указан общий объем памяти, свободная память и т. д. и т. д.

4. верхняя команда

Команда top обычно используется для проверки использования памяти и процессора для каждого процесса. Однако он также сообщает об общем использовании памяти и может использоваться для мониторинга общего использования ОЗУ. Заголовок на выходе содержит необходимую информацию. Вот пример вывода

Проверьте строки KiB Mem и KiB Swap в заголовке. Они показывают общее, используемое и свободное количество памяти. Здесь также присутствует информация о буфере и кеше, как и в команде free.

5. htop

Подобно команде top, команда htop также показывает использование памяти, а также различные другие сведения.

 Использование оперативной памяти htop

Заголовок вверху показывает использование ЦП, ОЗУ и использование подкачки с соответствующими цифрами.

Информация об оперативной памяти

Чтобы узнать аппаратную информацию об установленной оперативной памяти, используйте команду demidecode. Он сообщает много информации об установленной оперативной памяти.

Предоставленная информация включает размер (2048 МБ), тип (DDR2), скорость (667 МГц) и т. д.

Обзор

Все вышеупомянутые команды работают из терминала и не имеют графического интерфейса. При работе на рабочем столе с графическим интерфейсом гораздо проще использовать инструмент с графическим интерфейсом и графическим выводом. Наиболее распространенными инструментами являются gnome-system-monitor в gnome и
ksysguard в KDE. Оба предоставляют информацию об использовании ресурсов процессора, оперативной памяти, подкачки и пропускной способности сети в графическом и легком для понимания визуальном виде.

Технический энтузиаст, блоггер, поклонник Linux и разработчик программного обеспечения. Пишет о компьютерном оборудовании, Linux и программном обеспечении с открытым исходным кодом, а также о программировании на Python, Php и Javascript. С ним можно связаться по адресу [email protected] .

66 мыслей о «5 командах для проверки использования памяти в Linux»

Вы очень хорошо объяснили тему. Спасибо, что поделились хорошей статьей.

Спасибо за эти команды. Это сэкономило много времени.

Как насчет того, чтобы объяснить, что мы ищем? Большинство людей знают эти команды. Пустая трата времени.

Исправьте опечатку в разделе «Информация об оперативной памяти». Команда для просмотра аппаратной информации об оперативной памяти — «dmidecode», а не «demidecode».
Кроме того, для этого требуются привилегии root.

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

В этом руководстве вы узнаете о пяти мощных командах для проверки использования памяти в Linux.

Мы также предоставляем подробные объяснения того, что они делают, и, что более важно, как интерпретировать результаты. Команды будут работать практически со всеми дистрибутивами Linux. В данном случае команды и результаты представлены с использованием Ubuntu 18.04.

руководство по проверке использования памяти в Linux

  • Доступ к командной строке/терминалу
  • Пользователь с правами sudo
  • Менеджер пакетов apt

Команды для проверки использования памяти в Linux

Команда cat для отображения информации о памяти Linux

Ввод cat /proc/meminfo в вашем терминале открывает файл /proc/meminfo.

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

Это пример того, как выглядит файл /proc/meminfo в Ubuntu 18.04:

 cat-proc-meminf-linux-memory

Терминал отображает информацию в килобайтах.

free команда для отображения объема физической памяти и памяти подкачки

Набрав free в командном терминале, вы получите следующий результат:

linux-free- команда

Данные представляют собой объем используемой/доступной памяти и объем памяти подкачки в килобайтах.

 linux-vmstat-memory-check-command

Подробное описание, приведенное ниже, содержит объяснение каждого значения на случай, если вам понадобится помощь в анализе результатов.

  • Процессы
    • 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- командно-linux-память

    Помимо предоставления важной информации о памяти, команда top предоставляет ограниченный интерактивный интерфейс. Можно управлять операциями и настраивать их с помощью параметров командной строки.

    Команда man в Linux man top предоставляет полный список всех доступных вариантов.

    Команда htop для поиска загрузки памяти каждого процесса

    Информация, которую предоставляет команда htop, аналогична команде top. Однако реальным преимуществом команды htop является ее удобная среда и улучшенные элементы управления.

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

    Появляется следующий вывод:

    htop- linux-command-memory

    1. В верхнем сегменте представлена ​​сводная информация, а также графические и текстовые счетчики.
    2. Нижний раздел структурирует подробные данные для каждого процесса. Это позволяет с легкостью выполнять действия над отдельными процессами.
    3. Ярлыки, перечисленные в нижней части экрана, позволят вам управлять процессами и настраивать их быстро и без необходимости вводить определенные команды.

    Примечание. Если при попытке запустить команду htop появляется сообщение «Команда ‘htop’ не найдена», вам необходимо сначала установить функцию htop:

    В качестве альтернативы используйте следующую команду:

    Проверка использования памяти в Linux с помощью графического интерфейса

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

    Для доступа к системному монитору:

    1. Перейдите к Показать приложения.
    2. Введите системный монитор в строке поиска и получите доступ к приложению.
    3. Выберите вкладку "Ресурсы".
    4. Отображается графический обзор потребления памяти в режиме реального времени, включая историческую информацию.

     gui-gnome-memory-system-monitor

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


    Дэйв Маккей


    Дэйв Маккей
    Писатель

    Экран ноутбука с логотипом оболочки Bash на красном фоне

    Фатмавати Ачмад Заэнури/Shutterstock

    Использование памяти в Linux может быть сложным для интерпретации и понимания. С помощью smem легко узнать, какую память использует процесс и какие процессы используют больше всего.

    Использование памяти

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

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

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

    Попытка расшифровать все это и найти простой ответ на вопрос «Сколько оперативной памяти использует эта программа или процесс?» может оказаться неожиданной проблемой. Детализация — это хорошо, и это имеет место быть, но в равной степени избыточность информации может стать препятствием.

    Например, использование cat для просмотра псевдофайловой системы /proc/meminfo вернуло 50 строк вывода на компьютере, который использовался для исследования этой статьи. С чего начать?

    И некоторые утилиты Linux дают разные ответы. На нашей тестовой машине у нас был запущен экземпляр less с идентификатором процесса 2183.

    Мы можем использовать утилиту pmap с параметром -x (расширенный), чтобы получить полную картину использования памяти процессом. Мы будем использовать его с идентификатором процесса нашего экземпляра less :

    Запрос карты памяти одного процесса

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

    Вывод pmap для одного экземпляра less

    Затем мы использовали утилиту ps с параметром -o (вывод), выбрали столбец RSS и передали ему идентификатор процесса того же экземпляра less :

    Использование ps для просмотра RSS того же экземпляра меньше

    Мы получаем другой результат. Это дизайнерское решение со стороны авторов ps. Это со страницы руководства ps:

    Поля SIZE и RSS не учитывают некоторые части процесса, включая таблицы страниц, стек ядра, структуру thread_info и структуру task_struct. Обычно это не менее 20 КБ памяти, которая всегда является резидентной. SIZE — виртуальный размер процесса (код+данные+стек).

    У авторов других утилит есть свои взгляды на то, как измерять использование оперативной памяти.

    RSS, USS и PSS

    Размер резидентного набора (RSS) — это объем ОЗУ, выделенный процессу, без учета пространства подкачки, но включая объем ОЗУ, требуемый общими библиотеками, которые использует процесс.

    RSS почти всегда завышает данные об использовании оперативной памяти. Если два или более процессов используют одну или несколько общих библиотек, RSS просто добавит использование ОЗУ каждой библиотекой к своему счетчику использования ОЗУ для каждого из этих процессов. Помимо неточности, в этом есть определенная ирония. Общие библиотеки означают, что каждому процессу не нужно загружать свой собственный частный экземпляр библиотеки. Если библиотека уже находится в памяти, она будет использовать ее совместно, что снизит нагрузку на оперативную память.

    Пропорциональный размер набора пытается решить эту проблему, разделяя объем общей памяти между процессами, которые совместно используют ее. Если есть четыре процесса, совместно использующих некоторую память, PSS сообщает, что 25% общей оперативной памяти используется каждым из этих процессов. Это приблизительное значение, но оно больше похоже на то, что происходит, чем на картину, которую рисует RSS.

    Размер уникального набора — это объем ОЗУ, который используется исключительно процессом независимо от того, потребляется ли он непосредственно процессом или используется библиотеками, которые используются исключительно процессом. Опять же, он игнорирует пространство подкачки. Его интересует только настоящая физическая оперативная память.

    USS и PSS – это термины и концепции, предложенные Мэттом Макколлом, автором smem .

    Утилита smem

    Утилита smem сообщает об использовании памяти процессами, пользователями, отображением или всей системой. Во всех протестированных нами дистрибутивах он требовал установки. Чтобы установить его в Ubuntu, используйте эту команду:

    Установка smem в Ubuntu

    Чтобы установить smem в Fedora, вам нужно ввести:

    Установка smem в Fedora

    Для установки smem на Manjaro используйте:

    Установка smem на Manjaro

    Использование smem без параметров дает вам список процессов, использующих оперативную память.

    Вызов smem без параметров командной строки

    В окне терминала отображается таблица с информацией.

    Вывод smem по умолчанию

    • PID: идентификатор процесса, использующего память.
    • Пользователь: имя пользователя, которому принадлежит процесс.
    • Команда. Командная строка, запустившая процесс.
    • Swap: сколько места подкачки использует процесс.
    • USS: размер уникального набора.
    • PSS: пропорциональный размер набора.
    • RSS: размер резидентного набора.

    Чтобы увидеть размеры, выраженные в процентах, используйте параметр -p (в процентах).

    Использование параметра smem -p для запроса процентов

    Размеры в байтах заменены процентами.

    smem вывод, показывающий проценты

    Чтобы увидеть цифры в более удобной для человека форме, используйте параметр -k (сокращение). Это уменьшает цифры и добавляет индикаторы единиц измерения.

    Использование опции smem -k для отображения размеров с индикаторами единиц измерения

    Вместо необработанных байтов размеры отображаются в мегабайтах, гигабайтах и т. д.

    smem вывод с использованием индикаторов единиц, таких как K, M и G

    Чтобы добавить строку итогов, используйте параметр -t (итоги).

    Использование параметра smem -t для добавления итоговой строки в вывод

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

    Итоговая строка внизу вывода smem

    Уточнение отчета

    Вы можете попросить smem сообщить об использовании памяти пользователями, сопоставлением (библиотеками) или всей системой. Чтобы отфильтровать вывод по пользователю, используйте параметр -u (пользователь). Обратите внимание: если вы хотите увидеть больше, чем просто собственное использование, вам нужно запустить smem с помощью sudo .

    Использование параметра smem -u с sudo и без него

    Как видите, выходные данные искажаются для имен пользователей длиннее восьми символов.

    Чтобы увидеть использование, сопоставленное с используемыми библиотеками, независимо от того, какие процессы используют библиотеки и какие пользователи владеют этими процессами, используйте параметр -m (сопоставление).

    Использование параметра smem -m для получения отчета картографа

    Мы также запросили удобочитаемые значения и итоговую сумму.

    Отчет с отображением smem, показывающий использование памяти библиотеками

    Чтобы увидеть использование общесистемной памяти, используйте параметр -w (для всей системы).

    Общесистемный отчет smem

    Отчетность по одной программе

    Применив немного магии командной строки, мы можем составить отчет по отдельной программе и всем ее подпроцессам. Мы направим вывод smem в tail и попросим tail показать только последнюю строку. Мы скажем smem использовать удобочитаемые значения и предоставить итог. Сумма будет последней строкой, и это хвост строки, который будет отображаться для нас.

    Мы воспользуемся параметром -c (столбцы) вместе с smem и укажем ему, какие столбцы мы хотим включить в наш вывод. Мы ограничим это столбцом Proportional Set Size. Параметр -P (фильтр процесса) позволяет нам указать строку поиска для smem. Будут включены только соответствующие строки вывода.

    Использование smem для отображения использования памяти процессом и его потомками

    Это быстрый и удобный способ узнать потребление оперативной памяти программой и ее дочерними процессами.

    Создание графиков

    Вы можете передать параметры --pie или --bar, чтобы smem генерировал графики. Надо сказать, что при слишком большом количестве категорий графики быстро становятся непонятными, но они могут быть полезны для быстрого визуального обзора.

    Формат команды:

    Просьба к smem создать круговую диаграмму

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

    Круговая диаграмма smem в отдельном окне просмотра

    Чтобы увидеть другие графики, используйте pss или rss вместо uss . Чтобы увидеть гистограмму, используйте --bar вместо --pie .

    Чтобы это работало, вам необходимо установить Python вместе с библиотекой matplotlib. Они уже были установлены в протестированных нами дистрибутивах Ubuntu, Fedora и Manjaro.

    Хорошие вещи приходят в маленьких упаковках

    У утилиты smem есть еще несколько хитростей в рукаве, и вам рекомендуется ознакомиться с ее справочной страницей. Его основной репертуар — это то, что мы описали здесь, и это отличный небольшой инструмент, который должен быть в вашем наборе инструментов CLI.

    • › Что означает XD и как вы его используете?
    • › Что такое GrapheneOS и как она делает Android более приватным?
    • › Почему СМС должен умереть
    • › Худшее, что есть в телефонах Samsung, — это программное обеспечение Samsung.
    • › 5 вещей, которые вы, вероятно, не знали о GIF-файлах
    • › 7 основных функций Microsoft Excel для составления бюджета


    Дэйв Маккей


    Дэйв Маккей
    Писатель

    Окно терминала в системе Linux в стиле Ubuntu.

    Фатмавати Ахмад Заэнури/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 в резерве на тот случай, если вам нужно будет углубиться в изучение конкретной проблемы.

      < /tbody>
      Команды 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
      Сеть netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · копать · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw
      • › Легко понять использование оперативной памяти Linux с помощью Smem
      • › 7 основных функций Microsoft Excel для составления бюджета
      • › Что такое GrapheneOS и как она делает Android более приватным?
      • › Почему СМС должен умереть
      • › Что означает XD и как вы его используете?
      • › Худшее, что есть в телефонах Samsung, — это программное обеспечение Samsung.
      • › 5 вещей, которые вы, вероятно, не знали о GIF-файлах

      Читайте также: