
При устранении неполадок, связанных с замедлением работы системы или приложения, или их некорректным поведением, первым делом следует проверить использование системной памяти.
В этой статье объясняется, как проверить использование оперативной памяти в 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 = total - free - buffers - cache - свободно — Свободная / неиспользуемая память.
- общий — этот столбец можно игнорировать; он отображается только для обратной совместимости.
- Буфер/кэш — общая память, используемая буферами ядра, кэшем страниц и блоками памяти. Эта память может быть освобождена в любой момент при необходимости приложениями.
- доступно — оценка объема памяти, доступной для запуска новых приложений без подкачки.
Команда free выводит информацию о физической памяти и системном файле подкачки .
top команда
top — это утилита командной строки, которая отображает информацию о запущенных процессах в режиме реального времени. Она также показывает сводку о системе, включая использование памяти.
Чтобы вызвать команду, просто введите top :
top
Вывод будет выглядеть примерно так:

Заголовок выходных данных содержит информацию об общем, свободном и используемом объеме физической и подкачиваемой памяти системы.
Столбец %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, который сообщает об использовании оперативной памяти каждой программой. Он работает с 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 =================================
Этот скрипт полезен, когда вы хотите узнать, какая запущенная программа занимает большую часть системной памяти.
Заключение
Мы показали вам несколько команд, которые можно использовать для проверки использования системной памяти.
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.
Связанные руководства