Введение
При устранении неполадок, связанных с замедлением или неправильным поведением системы или приложений, в первую очередь необходимо проверить использование системной памяти.
В этой статье объясняется, как проверить использование оперативной памяти в Linux с помощью различных команд.
Если вы хотите проверить оперативную память на удаленном сервере, продолжайте читать, в противном случае пропустите первый абзац «Подключение к серверу» и читайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:
ssh root@IP_DEL_SERVER
Далее вам нужно будет ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:
ssh nome_utente@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Команда бесплатно
free
— наиболее часто используемая команда для проверки использования памяти в системе Linux. Отображает информацию об общей, используемой и свободной памяти.
Как правило, free
вызывается с параметром -h
, что означает печать вывода в удобочитаемом формате:
free -h
total used free shared buff/cache available
Mem: 1.9Gi 449Mi 166Mi 0.0Ki 1.3Gi 1.3Gi
Swap: 0B 0B 0B
Вот что означает каждый столбец:
- total: общий объем памяти, который может использоваться приложениями.
- used: Используемая память. Рассчитывается как:
used = total - free - buffers - cache
. - free: свободная/неиспользуемая память.
- shared: этот столбец можно игнорировать; он показан только для обратной совместимости.
- buff /cache: объединенная память, используемая ядром, кэшем и буферами страниц. Эта память может быть восстановлена в любое время, если это необходимо приложениям.
- available: Предполагаемый объем памяти, доступный для запуска новых приложений без свопинга.
Команда free
выводит информацию о физической памяти и системной подкачке.
Командный верх
top
— это утилита командной строки, которая в режиме реального времени отображает информацию о запущенных процессах. Он также показывает сводку системы, включая использование памяти.
Чтобы вызвать команду, просто введите top
:
top
Вывод будет выглядеть следующим образом:
top - 18:04:15 up 6 days, 4:27, 1 user, load average: 0.00, 0.01, 0.00
Tasks: 84 total, 1 running, 83 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem: 1939.7 total, 166.0 free, 450.4 used, 1323.4 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 1321.5 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
100985 jenkins 20 0 2639512 382876 30480 S 0.3 19.3 7:19.48 java
1 root 20 0 168636 12588 8416 S 0.0 0.6 0:58.16 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.04 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H-kblockd
9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
10 root 20 0 0 0 0 S 0.0 0.0 0:09.42 ksoftirqd/0
11 root 20 0 0 0 0 I 0.0 0.0 0:16.22 rcu_sched
12 root rt 0 0 0 0 S 0.0 0.0 0:04.52...
Заголовок вывода включает информацию об общей, свободной и используемой системе подкачки и физической памяти.
Столбец %MEM
предоставляет информацию об используемой доле физической памяти, доступной для каждого запущенного процесса.
Команда /proc/meminfo
Самый простой способ проверить использование оперативной памяти — просмотреть содержимое виртуального файла /proc/meminfo
. Этот файл используется free
, top
, ps
и другими командами информационной системы.
Используйте less
или cat
для просмотра содержимого файла /proc/meminfo
:
cat /proc/meminfo
Файл содержит большое количество информации о системной памяти и использовании подкачки:
MemTotal: 1986280 kB
MemFree: 170428 kB
MemAvailable: 1353864 kB
Buffers: 85156 kB
Cached: 1190784 kB
SwapCached: 0 kB
Active: 916192 kB
Inactive: 764900 kB
Active(anon): 405576 kB
Inactive(anon): 300 kB
Active(file): 510616 kB
Inactive(file): 764600 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 216 kB
Writeback: 0 kB
AnonPages: 405196 kB
Mapped: 87620 kB
Shmem: 724 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
104.0 KiB + 186.0 KiB = 290.0 KiB none
204.0 KiB + 380.0 KiB = 584.0 KiB atd
384.0 KiB + 474.0 KiB = 858.0 KiB daemon
320.0 KiB + 600.0 KiB = 920.0 KiB cron
380.0 KiB + 896.0 KiB = 1.2 MiB agetty (2)
632.0 KiB + 1.2 MiB = 1.8 MiB qemu-ga
1.1 MiB + 1.8 MiB = 2.9 MiB dbus-daemon
1.0 MiB + 2.1 MiB = 3.1 MiB systemd-timesyncd
1.3 MiB + 1.9 MiB = 3.2 MiB sudo
1.9 MiB + 2.2 MiB = 4.1 MiB systemd-udevd
980.0 KiB + 3.3 MiB = 4.2 MiB polkitd...
Этот сценарий полезен, когда вы хотите узнать, какая запущенная программа занимает больше всего системной памяти.
Вывод
Мы показали вам несколько команд, которые вы можете использовать для проверки использования системной памяти.