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

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

ОЗУ очень быстрая и ближе к ЦП (центральному процессору) компьютер. Поскольку ОЗУ находится ближе к ЦП компьютера, ЦП имеет прямой доступ к ОЗУ. Таким образом, задержка доступа к данным очень мала по сравнению с устройствами хранения, такими как HDD или SSD. Вот почему все программы используют оперативную память для хранения данных кеша.

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

Проверка использования ОЗУ — одна из самых важных задач в Linux. Вы можете диагностировать многие проблемы Linux, если вы можете отслеживать использование оперативной памяти вашей системы Linux.

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

Единицы компьютерной памяти:

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

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

Блоки памяти компьютера приведены ниже.

  • Бит: наименьшая единица компьютерной памяти — бит. Бит может содержать либо 0, либо 1. Вот и все.
  • Байт: 8 бит образуют байт.
  • Килобайт: 1000 байтов составляют килобайт.
  • Мегабайт: 1000 килобайт составляют мегабайт.
  • Гигабайт: 1000 мегабайт составляют гигабайт.
  • Терабайт: 1000 гигабайт составляют терабайт.
  • Петабайт: 1000 терабайт составляют петабайт.
  • Кибибайт: 1024 байта образуют кибибайт.
  • Мебибайт: 1024 кибибита образуют мебибайт.
  • Гибибайт: 1024 мебибита образуют гибибайт.
  • Тебибайт: 1024 гибибайта образуют тебибайт.
  • Пебибайт: 1024 тебибайта образуют пебибайт.

В байтах единицы хранения компьютера следующие.

  • Килобайт: 1000 байтов или 10 3 байтов.
  • Мегабайт: 1 000 000 байт или 10 6 байт.
  • Гигабайт: 1 000 000 000 байт или 10 9 байтов.
  • Терабайт: 1 000 000 000 000 байтов или 10 12 байтов.
  • Петабайт: 1 000 000 000 000 000 байт или 10 15 байт..
  • Кибибайт: 1024 байта или 2 10 байта.
  • Мебибайт: 1 048 576 байтов или 2 20 байтов.
  • Гибибайт: 1 073 741 824 байта или 2 30 байт.
  • Тебибайт: 1 099 511 627 776 байтов или 2 40 байтов.
  • Pebibyte: 1 125 899 906 842 624 или 2 50 байтов.

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

Обратите внимание, что килобайт, мегабайт, гигабайт, терабайт и петабайт — это степень 10 байтов. Но кибибайт, мебибайт, гибибайт, тебибайт и пебибайт являются степенями двух байтов. Для нас, людей, легко вычислить в степени 10 (десятичная система счисления), поскольку у нас 10 пальцев. Но для компьютеров проще вычислить в степени двойки (двоичная система счисления). Таким образом, компьютеры используют степень двойки для обозначения объема хранилища или памяти.

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

Сокращенные обозначения или символы приведены ниже.

  • Байт: Б
  • Килобайт: КБ или КБ
  • Мегабайт: МБ
  • Гигабайт: ГБ
  • Терабайт: ТБ
  • Петабайт: ПБ
  • Байт: Б
  • Кибибайт : KiB или K
  • Мебибайт: MiB или M
  • Гибибайт: ГиБ или Г
  • Тебибайт: ТиБ или Т
  • Пебибайт: ПиБ или P

Некоторые программы могут не следовать этому стандарту и использовать эти сокращения или символы как взаимозаменяемые. В любом случае разница между этими единицами не так уж велика (то есть килобайт против кибибайта). Не беспокойтесь об этом.

Память и свопинг в Linux:

В Linux физическая память называется памятью . Когда физическая память заполняется, Linux разумно перемещает менее часто используемые данные из памяти в определенную часть диска (жесткий диск или твердотельный накопитель). Эта часть диска называется подкачкой.

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

Диск подкачки очень медленный по сравнению с ОЗУ или физической памятью. Если система Linux широко использует пространство подкачки, система может стать очень медленной и не отвечать. Итак, система Linux не должна использовать пространство подкачки. Мы хотим этого избежать, насколько это возможно. Когда система Linux начинает заполнять пространство подкачки, это признак того, что системе Linux требуется больше физической памяти. Рекомендуется добавить в систему больше оперативной или физической памяти..

Проверка использования памяти с помощью free:

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

Вы можете проверить использование памяти с помощью команды free следующим образом :

$ free

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

По умолчанию команда free показывает буферы и кэш-память использование в столбце buff/cache . Если вы хотите видеть отдельно буферы и кеш-память, запустите команду free с параметром -w следующим образом:

$ free -w

Как видите, информация об использовании памяти buffers и cache отображается в разных столбцах.

Бесплатная команда показывает следующую информацию:

total: Это общая доступная физическая память и пространство подкачки (в кибибайтах) вашей системы Linux.

used: Это объем используемой физической памяти и пространства подкачки вашей системой Linux. Обратите внимание, что на моем компьютере с Ubuntu используется 0 КиБ пространства подкачки. Итак, он вообще не использует своп. Это очень хорошо.

бесплатно: это объем физической памяти, который все еще не используется.

Общая: это объем памяти, который используется разными процессами или программами. Одна или несколько программ Linux могут использовать одну и ту же библиотеку или вызовы функций. Вместо того, чтобы выделять память несколько раз для одних и тех же вещей, Linux разумно разделяет общие вещи между этими процессами или программами. Это экономит физическую память. Файловые системы tmpfs (например, /dev/shm , /run , /run/lock , , /sys/fs/cgroup и т. д.) также используют некоторую физическую память, которая является общей для всех процессов и программ в Linux.

buffers: Это объем памяти, который используется буферами ядра. Буфер — это блок памяти, в котором данные временно хранятся при перемещении данных из одного места в другое.

cache: Это объем физической памяти, который используется используется для данных кэша.

buff/cache: это общий объем физической памяти, используемой для буферов и кеша.

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

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

Например, чтобы увидеть информацию об использовании памяти и подкачки в байтах, выполните команду free с параметром -b или –bytes следующим образом:

$ free -b

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

$ free -k

Чтобы просмотреть информацию об использовании памяти и подкачки в мебибайтах, запустите команду free с -m или –mebi следующим образом:

$ free -m

Чтобы увидеть использование памяти и свопинга, сообщите В гибибайтах выполните команду free с параметром -g или –gibi следующим образом:

$ free -g

Таким же образом вы можете использовать параметры командной строки –tebi и –pebi для отображения использования памяти и подкачки. информация в тебибайтах и ​​пебибайтах соответственно.

Если вы хотите отображать информацию об использовании памяти и свопа в килобайтах, запустите команду free с –Kilo следующим образом:

$ free —kilo

Если вы хотите отображать информацию об использовании памяти и подкачки в мегабайтах, запустите бесплатно с параметром –mega следующим образом:

$ free —mega

Если вы хотите отобразить ay информацию об использовании памяти и подкачки в гигабайтах, затем запустите команду free с параметром –giga следующим образом:

$ free —giga

Таким же образом вы можете использовать параметры командной строки –tera и –peta для отображения информации об использовании памяти и подкачки в терабайтах и петабайт соответственно.

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

Для удобочитаемого вывода запустите команду free . с параметром -h или –human следующим образом:

$ free -h

Как видите, удобочитаемый формат действительно прост для понимания.

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

Если вы хотите увидеть человека -читаемый вывод в десятичной или десятичной системе счисления (степень 10), затем запустите бесплатную команду с параметром командной строки -h или –human а также параметр командной строки –si следующим образом:

$ free —human —si

Команда free напечатает информация об использовании памяти и подкачки в байтах, килобайтах, мегабайтах, гигабайтах, терабайтах или петабайтах. В этих единицах используется десятичное или десятичное число. рическая система (степень 10).

Если хотите чтобы отобразить общий объем памяти и информацию об использовании подкачки, запустите команду free с параметром -t или –total следующим образом:

$ free -t

Как видите, общее использование памяти (физическая + своп) информация отображается в конце вывода.

Вы также можно запустить команду free в режиме мониторинга. В этом режиме команда free будет непрерывно печатать память и информацию об использовании подкачки через заданный интервал времени (в секундах).

Вы можете запустить free в режиме мониторинга с параметром командной строки -s или –seconds следующим образом:

$ free -s

Или

$ free –seconds

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

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

$ free -s 5

Как видите, память и информация об использовании подкачки печатается каждые 5 секунд.

Если вы хотите остановить команду free , нажмите + C .

В мониторинге режиме, команда free будет непрерывно печатать память и информацию об использовании по умолчанию.. Вы можете использовать параметр командной строки -c или –count , чтобы ограничить количество раз, когда на экране выводится новая информация об использовании памяти и подкачки.

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

$ free -s 10 -c 5

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

Это почти все, что вам нужно знать, чтобы проверить память и использование подкачки с помощью free команда. Но, если вы хотите узнать больше, проверьте страницу руководства по команде free следующим образом:

$ man free

Справочная страница free должна быть отображена команда strong>.

Проверка использования памяти с помощью Чтение файла/proc/meminfo:

Вы также можете проверить информацию об использовании памяти вашей системой Linux, прочитав файл /proc/meminfo .

Вы можете прочитать файл /proc/meminfo с помощью следующей команды:

$ cat/proc/meminfo

В файле содержится много информации об использовании памяти . Объем памяти выражается в кибибайтах.

Самый важная информация об использовании памяти в файле /proc/meminfo :

MemTotal: Это общий объем установленной памяти или физического память (RAM) системы Linux.

MemFree: Это объем неиспользуемой физической памяти (RAM).

MemAvailable: это приблизительный объем физической памяти (ОЗУ), доступной для новых программ.

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

Cached: Это объем физической памяти, используемой в качестве кэш-памяти.

SwapCached: это объем памяти, который был перемещен на диск подкачки и перемещен обратно в физическую ОЗУ. Но данные по-прежнему кэшируются на диске подкачки.

Активно: это объем физической памяти, которая используется и обычно не может быть восстановлена ​​без необходимости.

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

Активно (анонимно): это объем физической памяти, используемый анонимными файловыми системами tmpfs и общей памятью..

Неактивно (анонимно): это объем физической памяти, используемый анонимными файловыми системами tmfs и разделяемой памятью, которую можно восстановить.

Активный (файл): это объем кэш-памяти, который активно используется.

Неактивный (файл): Это объем кэш-памяти, который вновь загружается или может быть восстановлен.

Неизменяемый: Это объем памяти, который не может быть освобожден как он заблокирован пользовательскими программами.

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

SwapTotal: Это общий размер диска подкачки.

SwapFree: Это объем свободного пространства подкачки.

Dirty: общий объем памяти, ожидающий записи обратно на диск.

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

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

Mapped: объем памяти, который используется для файлов, которые были зарезервированы ядром Linux, например для библиотек, используемых различными программами.

Shmem : Это объем памяти, который совместно используется и используется файловыми системами tmpfs.

KReclaimable: Объем памяти, требуемый ядро и может быть восстановлено при необходимости.

Slab: Это объем памяти, который используется ядром для кэширования структур данных для использования ядром .

SReclaimable: Это объем памяти Slab, который может быть освобожден.

SUnreclaim : Это объем памяти Slab, который не может быть освобожден даже при необходимости.

KernelStack: Это объем памяти, который ты sed для выделения стека ядра.

Таблицы страниц: это объем памяти, выделенный для таблиц страниц. Таблица страниц — это структура данных, используемая компьютером для сопоставления виртуальной и физической памяти.

Bounce: Это объем памяти, используемый для буфера. блочных устройств (то есть устройств хранения, таких как HDD или SSD).

WritebackTmp: Объем памяти, который используется для временных буферов обратной записи FUSE.

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

Чтобы открыть страницу руководства proc , выполните следующую команду:

$ man 5 proc

Должна быть открыта страница руководства по proc.

Введите /proc/meminfo и нажмите . Это должно направить вас в/proc /meminfo, как вы можете видеть на снимке экрана ниже. Здесь вы найдете описания каждого поля в файле /proc/meminfo .

Проверка использования памяти с помощью top:

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

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

$ top

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

Команда top покажет следующую информацию о физической памяти:

всего: Общая доступная физическая память системы.

free: Объем физической памяти, который еще не используется.

used: объем физической памяти, используемой системой.

buff/cache: объем физической памяти, используемой как кэш-память и буфер.

avail Mem: Объем физической памяти, доступной для новых программ.

Команда top покажет следующую информацию о свопе:

total: Общая доступная память подкачки в системе.

free: Объем свободной подкачки память системы.

used: объем памяти подкачки, используемой системой.

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

Например, нажатие m один раз переключит в следующий режим . В этом режиме вверху отображается информация об использовании физической памяти и подкачки как процент_памяти_использовано/всего_память_в_мебибайтах .

Повторное нажатие m изменит стиль индикатора выполнения. Информация будет такой же, как и раньше.

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

По умолчанию команда top показывает следующую информацию об использовании памяти:

ВИРТ: Это размер виртуальной памяти процесса. Виртуальная память — это общая физическая память и память подкачки, используемая процессом.

RES: Это размер резидентной памяти процесса. Резидентная память — это объем физической памяти, которую использует процесс.

SHR: Это размер общей памяти процесса. Это объем памяти, который использует процесс, который также используется некоторыми другими процессами.

% MEM: Процент физической памяти, используемой процессом. используя.

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

CODE: Это размер кода процесса. Это объем физической памяти, выделенной для исполняемого кода процесса. Он также известен как резидентный набор текста или TRS.

DATA: Это данные и размер стека процесса. Это объем памяти, зарезервированной процессом. Возможно, он еще не сопоставлен с физической памятью. Но он всегда будет отображаться в виртуальной памяти (VIRT) процесса. Он также известен как резидентный набор данных или DRS.

RSan: это размер резидентной анонимной памяти процесса. Это подмножество физической памяти (RES), которое представляет частные страницы, которые еще не сопоставлены с файлом.

RSfd: Это резидентный файл- Размер резервной памяти процесса. Это подмножество физической памяти (RES), которая представляет собой совместно используемые страницы и вспомогательные изображения программ, совместно используемые библиотеки, сопоставления файлов и т. Д.

RSsh: Это размер резидентной общей памяти процесса. Это подмножество физической памяти (RES), которая представляет совместно используемые анонимные страницы.

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

SWAP: Это размер подкачки процесса. Это объем информации о физической памяти (RES), который перемещается в пространство подкачки из физической памяти.

ИСПОЛЬЗУЕМЫЕ: Это общий объем память (физическая + своп), которую использует процесс.

USED = RES + SWAP.

Обратите внимание, что физическая память ( RES), используемый процессом, представляет собой сумму размера резидентной анонимной памяти (RSan), размера резидентной файловой памяти (RSfd) и размера резидентной общей памяти (RSsh).

RES = RSan + RSfd + RSsh

Чтобы включить эти столбцы с информацией о памяти, запустите top и нажмите f .

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

Когда вы закончите, нажмите q , чтобы вернуться в верхнее окно мониторинга процесса. Как видите, столбцы информации об использовании памяти SWAP, CODE, DATA, USED, RSan, RSfd , RSlk, RSsh отображаются.

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

Чтобы переключаться между различными блоками памяти (кибибайт, мебибайт, гибибайт, тебибайт или пебибайт), запустите top и нажмите e .

top информация об использовании памяти отображается в мебибайтах.

top использование памяти информация отображается в гибибайтах.

вверх информация об использовании памяти отображается в тебибайтах.

top информация об использовании памяти отображается в пебибайтах.

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

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

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

Затем выберите столбец SWAP с помощью клавиш со стрелками на клавиатуре. и нажмите s .

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

Как видите, процессы, которые используют больше всего пространства подкачки, перечислены первыми.

Настроив команду top , вы можете нажать + w , чтобы сохранить конфигурацию в файле конфигурации toprc . Таким образом, вам не нужно перенастраивать top каждый раз, когда вы его используете.

Проверка использования памяти с помощью htop:

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

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

Чтобы установить htop в Ubuntu/Debian, выполните следующие команды:

$ sudo apt update
$ sudo apt install htop -y

ПРИМЕЧАНИЕ. В CentOS/ RHEL, htop доступен в репозитории EPEL. Перед При установке htop в вашей системе CentOS/RHEL должен быть установлен репозиторий EPEL ( пакет epel-release ).

Чтобы установить htop на CentOS 7/RHEL 7, выполните следующие команды:

$ sudo yum install epel-release -y
$ sudo yum install htop -y

Чтобы установить htop на CentOS 8/RHEL 8, выполните следующие команды:

$ sudo dnf install epel-release -y
$ sudo dnf install htop -y

Один раз htop установлен, вы можете запустить его с помощью следующей команды:

$ htop

Htop должен запуститься.

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

Информация об использовании памяти и свопа представлена ​​в формате used / total . htop автоматически выберет единицу измерения (кибибайт, мебибайт, гибибайт, тебибайт или пебибайт) для наилучшего описания информации об использовании памяти и подкачки.

Полосы использования памяти и свопа представлены разными цветами. Цвета имеют значение.

Чтобы знать, что представляет каждый цвет , запустите htop и нажмите h , чтобы перейти в окно справки htop .

Как вы можете видеть, зеленый цвет представляет физическую память, которая используется различными программами/процессами, синий цвет представляет физическую память, используемую в качестве буферов, желтый цвет представляет физическую память, используемую в качестве кэш-памяти, а красный цвет представляет собой использованное пространство подкачки.

Чтобы вернуться в главное окно htop , нажмите q .

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

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

VIRT/M_SIZE: Это размер виртуальной памяти процесса. Виртуальная память — это общая физическая память и память подкачки, используемая процессом.

RES/M_RESIDENT: Это размер резидентного набора процесса. Резидентная память — это объем физической памяти, который использует процесс. Он равен тексту + данные + стек или M_TRS + M_DRS.

SHR/M_SHARE: Это размер разделяемой памяти процесса. Это объем памяти, который использует процесс, который также используется некоторыми другими процессами.

% MEM/PERCENT_MEM: Процент физической памяти процесса используется.

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

CODE/M_TRS: Это размер кода процесса. Это объем физической памяти, выделенной для исполняемого кода процесса.

DATA/M_DRS: Это данные и размер стека процесса. Это объем памяти, зарезервированной процессом. Возможно, он еще не сопоставлен с физической памятью. Но он всегда будет отображаться в виртуальной памяти (VIRT/M_SIZE) процесса.

LIB/M_LRS: Это размер библиотеки процесса. Это объем физической памяти, который использует код библиотеки (используемый процессом/программой).

DIRTY/M_DT: Это размер грязного страницы процесса. Раздел/страница, которая изменяется в буфере, называется грязной страницей.

Чтобы включить эти столбцы с информацией о памяти, запустите htop и нажмите F2 .

Затем перейдите к Столбцы из раздела Настройка , выберите столбец, перед которым вы хотите чтобы добавить новые столбцы из раздела Активные столбцы , выберите столбец, который вы хотите добавить, в разделе Доступные столбцы и нажмите , чтобы добавить столбец.

столбец необходимо добавить в раздел Активные столбцы .

Таким же образом добавьте другие столбцы памяти (столбцы, начинающиеся с M_ ). Когда вы закончите, нажмите , чтобы вернуться в главное окно htop .

Как видите, добавлены столбцы с дополнительной информацией об использовании памяти.

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

Чтобы переключиться в представление в виде дерева, нажмите t . Как видите, процессы очень хорошо организованы их родительско-дочерними отношениями. В этом режиме вы можете видеть, какие дочерние процессы порождены родительским процессом, и их использование памяти.

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

Вы можете также отсортируйте процессы по разным столбцам использования памяти. По умолчанию процессы сортируются по загрузке ЦП (% ЦП).

Чтобы отсортировать процессы по определенному столбцу, нажмите F6 .

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

Я буду отсортировать процессы по M_RESIDENT / RES для демонстрации.

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

Программа htop перечисляет множество процессов. Все эти процессы не могут быть отображены в окне/экране ограниченного размера. Но вы можете нажимать клавиши со стрелками и , чтобы очень легко перемещаться по списку процессов.

Проверка использования памяти с помощью smem:

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

В математике это выглядит так:

использование физической памяти процессом = разделяемая память Использование + использование неразделенной памяти

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

В математике это выглядит так:

использование физической памяти процессом = (использование совместно используемой памяти/количество процессов, совместно использующих память)
+ нераспределенная память

smem не предустановлено по умолчанию в большинстве дистрибутивов Linux. Но он доступен в официальном репозитории пакетов большинства дистрибутивов Linux.

В Ubuntu/Debian вы можете установить smem с помощью следующих команд:

$ sudo apt update
$ sudo apt install smem -y

В CentOS/RHEL 7, smem доступен в репозитории пакетов EPEL. Итак, вы должны добавить репозиторий EPEL в CentOS/RHEL 7 для установки smem .

В CentOS/RHEL 7 вы можете установить smem с помощью следующих команд:

$ sudo yum install epel-release -y
$ sudo yum install smem -y

К сожалению, smem недоступен в официальном репозитории пакетов или репозитории EPEL CentOS/RHEL 8. У вас должна быть возможность скомпилировать smem из исходного кода или загрузите двоичный файл smem с официального сайта smem.

Если вы хотите скомпилировать smem из исходный код, то вы можете загрузить исходный код smem с официальной страницы исходных кодов smem.

Если вы хотите загрузить предварительно скомпилированный двоичный файл smem , тогда вы можете загрузить его с официальной страницы загрузки smem.

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

Чтобы знать сколько памяти использует пользователь Linux, запустите s mem следующим образом:

$ sudo smem -kau

Здесь параметр -k используется, чтобы показать блок, который smem используется для отображения информации об использовании памяти.

smem использует следующие единицы измерения:

K — Кибибайт

M — Мебибайт

G — Гибибайт

T — Тебибайт

P — Пебибайт

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

Параметр -u используется для отображения информации об использовании памяти пользователем.

Как видите, smem сообщает информацию об использовании памяти и подкачки для каждого пользователя моей машины Ubuntu.

smem показывает следующую информацию об использовании памяти пользователем:

User: Имя пользователя Linux для памяти сообщается об использовании.

Count: Количество процессов, выполняемых пользователем в данный момент.

Swap: объем дискового пространства подкачки, которое использует пользователь..

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

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

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

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

$ sudo smem -kaur

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

Если вы хотите увидеть общую информацию об использовании памяти пользователем, запустите smem с параметром -t следующим образом:

$ sudo smem -kaut

Как видите , smem добавляет информацию обо всех строках для каждого столбца и показывает информацию об общем использовании памяти каждого из столбцов в конце.

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

Если если вы хотите отображать информацию об использовании памяти в процентах от общей доступной физической памяти или места на диске подкачки, вы можете использовать параметр -p вместо -k следующим образом:

$ sudo smem -pau

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

Если вы хотите увидеть информацию об использовании системной памяти или сводку об использовании системной памяти, запустите smem с -w следующим образом:

$ sudo smem -kaw

Как видите, smem отображает информацию об использовании памяти в масштабе всей системы.

smem отображает следующую информацию об использовании памяти в масштабе всей системы:

Area: Часть системы, для которой используется память.

Используется: объем физической памяти, используемой для этой области.

Кэш: объем физической памяти, используемой в качестве кэш-памяти для этой области.

Noncache: объем физической памяти, используемой для этой области, которая не кэшируется.

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

$ sudo smem -kawt

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

Для этого запустите smem следующим образом:

$ sudo smem -kar

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

smem отображает следующую информацию об использовании памяти процессами:

PID: идентификатор процесса.

User: имя пользователя, запустившего процесс. или владеть процессом.

Команда: Команда, которая используется для запуска процесса.

Обмен : Объем дискового пространства подкачки, используемого процессом.

USS: Thi s — это уникальный размер набора процесса. Это объем физической памяти, используемой процессом, которая не используется совместно с другими процессами.

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

RSS: Это размер резидентного набора процесса. Это объем физической памяти и общей физической памяти, которую использует процесс.

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

Чтобы просмотреть информацию об использовании памяти каждым файлом библиотеки, загруженным в физическую память вашего компьютера, запустите smem с -m следующим образом:

$ sudo smem -kamr

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

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

Map: файл библиотеки, который сопоставлен с физической памятью вашего компьютера.

PIDs: общее количество процессов, использующих это файл библиотеки.

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

AVGPSS: Это среднее пропорциональное Установите размер процессов, использующих этот файл библиотеки. Это средняя физическая память, которая совместно используется каждым из процессов (использующих этот файл библиотеки). Вы также можете сказать: AVGPSS = PSS/PIDs (about).

Проверка использования памяти с помощью vmstat:

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

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

$ vmstat -s

vmstat должен отображать общесистемную информацию об использовании памяти в единицах кибибайт, как вы можете видеть на снимке экрана ниже.

vmstat показывает следующую информацию об использовании памяти:

total memory: Общая доступная физическая память вашего компьютера.

используемая память: общая используемая физическая память вашего компьютера.

свободная память: Общая свободная физическая память вашего компьютера.

total swap: Общее доступное пространство на диске подкачки.

used swap: объем используемого пространства подкачки.

free swap: объем свободного места на диске подкачки.

кэш подкачки: объем дискового пространства подкачки, используемого в качестве кеша.

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

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

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

Проверка использования памяти с помощью системного монитора GNOME:

Системный монитор GNOME — это графический программное обеспечение для мониторинга использования памяти, запущенных процессов и использования диска. Он предустановлен в среде рабочего стола GNOME 3, Ubuntu MATE, Cinnamon и Budgie.

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

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

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

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

На вкладке Процессы в Системный монитор GNOME , вы можете увидеть информацию об использовании памяти каждым из процессов, запущенных на вашем компьютере.

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

Информация об использовании виртуальной (VIRT), резидентной (RES) и общей (RSS) памяти процессами должен отображаться, как вы можете видеть на снимке экрана ниже.

Эта информация об использовании памяти такая же, как в вверху или htop .

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

) и выберите Все процессы , как показано на снимке экрана ниже.

Если вы хотите увидеть процессы в виде дерева (отношения родитель-потомок), щелкните гамбургер-меню (

) и установите флажок Показать зависимости , как показано на снимке экрана ниже.

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

Проверка использования памяти с помощью KSysGuard:

KSysGuard — это графическое программное обеспечение для мониторинга памяти Использование и запущенные процессы. Он предустановлен в среде рабочего стола KDE Plasma.

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

На вкладке Таблица процессов в KSysGuard вы можете увидеть информацию об использовании памяти каждым из процессов, запущенных на вашем компьютере.

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

Вы можете щелкнуть правой кнопкой мыши (ПКМ) в строке заголовка и выбрать Показать столбец« Виртуальный размер » и Показать столбец «Общий объем памяти» , чтобы увидеть дополнительную информацию об использовании памяти.

Как видите, KSysGuard теперь показывает размер виртуальной памяти (VIRT), а также общее использование физической памяти для каждого из запущенных процессов.

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

Для просмотра в виде дерева выберите Все процессы, Дерево в раскрывающемся меню.

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

Если вы хотите видеть только процессы системного уровня, выберите Системные процессы в раскрывающемся меню. Эти процессы обычно принадлежат пользователю root .

Если вы хотите увидеть процессы на уровне пользователя, выберите Пользовательские процессы в раскрывающемся меню. Эти процессы обычно принадлежат обычным пользователям (без полномочий root).

Если вы хотите видеть только процессы, принадлежащие зарегистрированному пользователю, выберите Собственные процессы .

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

Заключение:

В этой статье я рассмотрел наиболее распространенные способы проверки использования памяти в Linux. Я показал, как проверить использование памяти в системах Linux из командной строки, а также из графических сред рабочего стола. Я объяснил, как использовать такие программы, как free , top , htop , smem , vmstat , системный монитор GNOME и KSysGuard , чтобы проверить использование памяти Linux. Я также обсуждал d формат вывода этих команд и программ. Эта статья должна помочь вам начать работу с проверкой использования памяти Linux и дать вам глубокие знания об инструментах проверки использования памяти Linux.

Оцените статью
nanomode.ru
Добавить комментарий