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

12 set 2022 4 min di lettura
Как проверить использование оперативной памяти в Linux
Indice dei contenuti

Введение

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

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

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

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh [email protected]_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

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

ssh [email protected]_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh [email protected]_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...

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

Вывод

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

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.