При устранении неполадок, связанных с замедлением работы или неправильным поведением системы или приложений, в первую очередь необходимо проверить использование системной памяти.
В этой статье объясняется, как проверить использование ОЗУ в Linux с помощью нескольких разных команд.
Содержание
free
команда
free
— это наиболее часто используемая команда для проверки использования памяти в системе Linux. Он отображает информацию об общей, используемой и свободной памяти.
Как правило, free
вызывается с параметром -h
что означает печать вывода в удобочитаемом формате:
free -h
total used free shared buff/cache available
Mem: 3936 1087 252 130 2596 2427
Swap: 0 0 0
Вот что означает каждый столбец:
- total — общий объем памяти, который может использоваться приложениями.
- used — Используемая память. Он рассчитывается как:
used = total - free - buffers - cache
- бесплатно — Свободная / неиспользуемая память.
- общий — этот столбец можно игнорировать; он показан только для обратной совместимости.
- buff / cache — объединенная память, используемая буферами ядра, а также страничным кешем и блоками. Эта память может быть освобождена в любое время, если это необходимо приложениям.
- available — оценка объема памяти, доступного для запуска новых приложений без подкачки.
Команда free
печатает информацию о физической памяти и системном свопе .
top
команда
top
— это утилита командной строки, отображающая информацию о запущенных процессах в реальном времени. Он также показывает сводку системы, включая использование памяти.
Чтобы вызвать команду, просто введите top
:
free -h
Результат будет выглядеть примерно так:
Заголовок вывода включает информацию об общей, свободной и используемой физической памяти и памяти подкачки в системе.
Столбец %MEM
предоставляет информацию об используемой доле доступной физической памяти для каждого запущенного процесса.
/proc/meminfo
Самый простой способ проверить использование оперативной памяти — отобразить содержимое виртуального файла /proc/meminfo
. Этот файл используется командами free
, top
, ps
и другими командами системной информации.
Используйте less
или cat
для просмотра содержимого файла /proc/meminfo
:
cat /proc/meminfo
Файл включает в себя большой объем информации об использовании системной памяти и подкачки:
MemTotal: 4030592 kB
MemFree: 401804 kB
MemAvailable: 2507504 kB
...
Информация из файла /proc/meminfo
может быть проанализирована и использована в сценариях оболочки.
ps_mem
Скрипт
ps_mem
— это скрипт Python, который сообщает об использовании памяти RAM для каждой программы. Он работает как с Python 2, так и с 3 и может быть установлен с помощью pip
:
sudo pip3 install ps_mem
Для ps_mem
требуются права администратора:
sudo ps_mem
Вывод будет включать использование памяти каждой запущенной программой в порядке возрастания:
Private + Shared = RAM used Program
...
11.9 MiB + 20.2 MiB = 32.1 MiB nginx (4)
8.2 MiB + 42.4 MiB = 50.6 MiB systemd-journald
55.8 MiB + 307.2 MiB = 363.0 MiB php-fpm7.4 (6)
233.9 MiB + 234.0 MiB = 467.9 MiB redis-server
578.2 MiB + 578.6 MiB = 1.1 GiB mysqld
---------------------------------
2.2 GiB
=================================
Этот сценарий полезен, когда вы хотите узнать, какая запущенная программа занимает большую часть вашей системной памяти.
Выводы
Мы показали вам несколько команд, которые вы можете использовать для проверки использования системной памяти.
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.