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

Linux

Linux не похож на Windows, у вас часто не будет графического интерфейса, особенно в серверной среде.

Администратору Linux очень важно знать, как получить текущие доступные и используемые ресурсы, такие как память, ЦП, диск и т. д. Если приложение занимает слишком много ресурсов в вашей системе, не позволяя вашей системе быть оптимальной, вам нужно найти и исправить это.

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

В Linux команды могут делать что угодно, поэтому используйте соответствующие команды. В этом руководстве мы покажем вам 8 полезных команд для просмотра использования памяти в системе Linux, включая ОЗУ и раздел подкачки.

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

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

  • freeЗаказ
  • /proc/meminfoдокумент
  • vmstatЗаказ
  • ps_memЗаказ
  • smemЗаказ
  • topЗаказ
  • htopЗаказ
  • glancesЗаказ

1) Как использовать бесплатную команду для просмотра использования памяти Linux

бесплатная команда— основная команда, широко используемая администраторами Linux. Но он дает больше информации, чем/proc/meminfoМеньше файлов.

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

Эта информация из/proc/meminfoполученный из файла.

# free -m
              total        used        free      shared  buff/cache   available
Mem:          15867        9199        1702        3315        4965        3039
Swap:         17454         666       16788
  • total: общий объем памяти
  • used: объем памяти, используемый текущим процессом (used = totalfreebuff/cache)
  • free: объем неиспользуемой памяти (free = totalusedbuff/cache)
  • shared: объем памяти, совместно используемой двумя или более процессами.
  • buffers: объем памяти, зарезервированный в памяти для ядра, чтобы регистрировать запросы очереди процессов.
  • cache: размер буфера страницы для хранения недавно использованных файлов в оперативной памяти.
  • buff/cache: общий объем памяти, используемый буферами и кэшами.
  • available: объем свободной памяти (без подкачки), которую можно использовать для запуска новых приложений.

2) Как использовать файл /proc/meminfo для проверки использования памяти Linux

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

# cat /proc/meminfo

MemTotal:       16248572 kB
MemFree:         1764576 kB
MemAvailable:    3136604 kB
Buffers:          234132 kB
Cached:          4731288 kB
SwapCached:        28516 kB
Active:          9004412 kB
Inactive:        3552416 kB
Active(anon):    8094128 kB
Inactive(anon):  2896064 kB
Active(file):     910284 kB
Inactive(file):   656352 kB
Unevictable:          80 kB
Mlocked:              80 kB
SwapTotal:      17873388 kB
SwapFree:       17191328 kB
Dirty:               252 kB
Writeback:             0 kB
AnonPages:       7566736 kB
Mapped:          3692368 kB
Shmem:           3398784 kB
Slab:             278976 kB
SReclaimable:     125480 kB
SUnreclaim:       153496 kB
KernelStack:       23936 kB
PageTables:        73880 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    25997672 kB
Committed_AS:   24816804 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
Percpu:             3392 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:     1059088 kB
DirectMap2M:    14493696 kB
DirectMap1G:     2097152 kB

3) Как использовать команду vmstat для просмотра использования памяти Linux

команда vmstat— еще один полезный инструмент для создания отчетов о статистике виртуальной памяти.

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

# vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0 682060 1769324 234188 4853500  0    3    25    91   31   16 34 13 52  0  0

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

  • procs:обработать
    • r: количество процессов, которые могут быть запущены (запущены или ожидают запуска).
    • b: количество процессов в непрерывном спящем режиме
  • memory:ОЗУ
    • swpd: объем используемой виртуальной памяти
    • free: количество свободной памяти
    • buff: объем используемой буферной памяти
    • cache: объем памяти для использования в качестве кеша
    • inact: количество неактивной памяти (используя-aвариант)
    • active: объем активной памяти (используя-aвариант)
  • Swap: поменять раздел
    • si: количество памяти, выгружаемой с диска в секунду
    • so: количество памяти, выгружаемой на диск в секунду
  • IO:ввод, вывод
    • bi: Блоки, полученные от блочного устройства (блоки/сек)
    • bo: блоки, отправленные на блочное устройство (блоков/сек)
  • System:система
    • in: Количество прерываний в секунду, включая часы.
    • cs: количество переключений контекста в секунду.
  • CPU: это проценты от общего времени ЦП.
    • us: доля времени, потраченного на код, не связанный с ядром (включая время пользователя, время планирования).
    • sy: процент времени, проведенного в коде ядра (системное время)
    • id: Процент времени бездействия. До Linux 2.5.41, включая время ожидания ввода-вывода
    • wa: процент времени ожидания ввода-вывода. До Linux 2.5.41 включено в простое
    • st: процент времени, украденного виртуальной машиной. До Linux 2.6.11 эта часть называлась unknown

Выполните следующую команду, чтобы просмотреть подробную информацию.

# vmstat -s

        16248580 K total memory
         2210256 K used memory
         2311820 K active memory
         2153352 K inactive memory
        11368812 K free memory
          107584 K buffer memory
         2561928 K swap cache
        17873388 K total swap
               0 K used swap
        17873388 K free swap
           44309 non-nice user cpu ticks
             164 nice user cpu ticks
           14332 system cpu ticks
          382418 idle cpu ticks
            1248 IO-wait cpu ticks
            1407 IRQ cpu ticks
            2147 softirq cpu ticks
               0 stolen cpu ticks
         1022437 pages paged in
          260296 pages paged out
               0 pages swapped in
               0 pages swapped out
         1424838 interrupts
         4979524 CPU context switches
      1577163147 boot time
            3318 forks

4) Как использовать команду ps_mem для проверки использования памяти Linux

ps_mem— это простой скрипт Python для просмотра текущего использования памяти. Инструмент может определить, сколько памяти используется каждой программой (не каждым процессом).

Инструмент использует следующий метод для расчета памяти, используемой каждой программой: общее использование = частная память процесса программы + общая память процесса программы.

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

# ps_mem

 Private  +   Shared  =  RAM used    Program
180.0 KiB +  30.0 KiB = 210.0 KiB    xf86-video-intel-backlight-helper (2)
192.0 KiB +  66.0 KiB = 258.0 KiB    cat (2)
312.0 KiB +  38.5 KiB = 350.5 KiB    lvmetad
380.0 KiB +  25.5 KiB = 405.5 KiB    crond
392.0 KiB +  32.5 KiB = 424.5 KiB    rtkit-daemon
852.0 KiB + 117.0 KiB = 969.0 KiB    gnome-session-ctl (2)
928.0 KiB +  56.5 KiB = 984.5 KiB    gvfs-mtp-volume-monitor
  1.0 MiB +  42.5 KiB =   1.0 MiB    dconf-service
  1.0 MiB + 106.5 KiB =   1.1 MiB    gvfs-goa-volume-monitor
  1.0 MiB + 180.5 KiB =   1.2 MiB    gvfsd
.
.
  5.3 MiB +   3.0 MiB =   8.3 MiB    evolution-addressbook-factory
  8.5 MiB +   1.2 MiB =   9.7 MiB    gnome-session-binary (4)
  7.5 MiB +   3.1 MiB =  10.5 MiB    polkitd
  7.4 MiB +   3.3 MiB =  10.7 MiB    pulseaudio (2)
  7.0 MiB +   7.0 MiB =  14.0 MiB    msm_notifier
 12.7 MiB +   2.3 MiB =  15.0 MiB    evolution-source-registry
 13.3 MiB +   2.5 MiB =  15.8 MiB    gnome-terminal-server
 15.8 MiB +   1.0 MiB =  16.8 MiB    tracker-miner-fs
 18.7 MiB +   1.8 MiB =  20.5 MiB    python3.7
 16.6 MiB +   4.0 MiB =  20.5 MiB    evolution-calendar-factory
 22.3 MiB + 753.0 KiB =  23.0 MiB    gsd-keyboard (2)
 22.4 MiB + 832.0 KiB =  23.2 MiB    gsd-wacom (2)
 20.8 MiB +   2.5 MiB =  23.3 MiB    blueman-tray
 22.0 MiB +   1.8 MiB =  23.8 MiB    blueman-applet
 23.1 MiB + 934.0 KiB =  24.0 MiB    gsd-xsettings (2)
 23.7 MiB +   1.2 MiB =  24.9 MiB    gsd-media-keys (2)
 23.4 MiB +   1.6 MiB =  25.0 MiB    gsd-color (2)
 23.9 MiB +   1.2 MiB =  25.1 MiB    gsd-power (2)
 16.5 MiB +   8.9 MiB =  25.4 MiB    evolution-alarm-notify
 27.2 MiB +   2.0 MiB =  29.2 MiB    systemd-journald
 28.7 MiB +   2.8 MiB =  31.5 MiB    c
 29.6 MiB +   2.2 MiB =  31.8 MiB    chrome-gnome-sh (2)
 43.9 MiB +   6.8 MiB =  50.7 MiB    WebExtensions
 46.7 MiB +   6.7 MiB =  53.5 MiB    goa-daemon
 86.5 MiB +  55.2 MiB = 141.7 MiB    Xorg (2)
191.4 MiB +  24.1 MiB = 215.4 MiB    notepadqq-bin
306.7 MiB +  29.0 MiB = 335.7 MiB    gnome-shell (2)
601.6 MiB +  77.7 MiB = 679.2 MiB    firefox
  1.0 GiB + 109.7 MiB =   1.1 GiB    chrome (15)
  2.3 GiB + 123.1 MiB =   2.5 GiB    Web Content (8)
----------------------------------
                           5.6 GiB
==================================

5) Как использовать команду smem для просмотра использования памяти Linux

smemэто инструмент, который может предоставлять различные отчеты об использовании памяти для систем Linux. В отличие от существующих инструментов,smemможет сообщитьразмер набора масштабовProportional Set Size(ПСС),Уникальный размер набораUnique Set Size(USS) иразмер резидентного набораResident Set Size(РСС).

  • Пропорциональный размер набора (PSS): объем использования библиотек и приложений в системе виртуальной памяти.
  • Размер уникального набора (USS): сообщает о неразделяемой памяти.
  • Размер резидентного набора (RSS): использование физической памяти (обычно совместно используемой несколькими процессами), которое обычно выше, чем использование памяти.
# smem -tk

 PID User     Command                         Swap      USS      PSS      RSS
3383 daygeek  cat                                0    92.0K   123.0K     1.7M
3384 daygeek  cat                                0   100.0K   129.0K     1.7M
1177 daygeek  /usr/lib/gnome-session-ctl         0   436.0K   476.0K     4.6M
1171 daygeek  /usr/bin/dbus-daemon --conf        0   524.0K   629.0K     3.8M
1238 daygeek  /usr/lib/xdg-permission-sto        0   592.0K   681.0K     5.9M
1350 daygeek  /usr/lib/gsd-screensaver-pr        0   652.0K   701.0K     5.8M
1135 daygeek  /usr/lib/gdm-x-session --ru        0   648.0K   723.0K     6.0M
.
.
1391 daygeek  /usr/lib/evolution-data-ser        0    16.5M    25.2M    63.3M
1416 daygeek  caffeine-ng                        0    28.7M    31.4M    66.2M
4855 daygeek  /opt/google/chrome/chrome -        0    38.3M    46.3M   120.6M
2174 daygeek  /usr/lib/firefox/firefox -c        0    44.0M    50.7M   120.3M
1254 daygeek  /usr/lib/goa-daemon                0    46.7M    53.3M    80.4M
3416 daygeek  /opt/google/chrome/chrome -        0    44.7M    54.2M   103.3M
4782 daygeek  /opt/google/chrome/chrome -        0    57.2M    65.8M   142.3M
1137 daygeek  /usr/lib/Xorg vt2 -displayf        0    77.2M   129.6M   192.3M
3376 daygeek  /opt/google/chrome/chrome          0   117.8M   131.0M   210.9M
4448 daygeek  /usr/lib/firefox/firefox -c        0   124.4M   133.8M   224.1M
3558 daygeek  /opt/google/chrome/chrome -        0   157.3M   165.7M   242.2M
2310 daygeek  /usr/lib/firefox/firefox -c        0   159.6M   169.4M   259.6M
4331 daygeek  /usr/lib/firefox/firefox -c        0   176.8M   186.2M   276.8M
4034 daygeek  /opt/google/chrome/chrome -        0   179.3M   187.9M   264.6M
3911 daygeek  /opt/google/chrome/chrome -        0   183.1M   191.8M   269.4M
3861 daygeek  /opt/google/chrome/chrome -        0   199.8M   208.2M   285.2M
2746 daygeek  /usr/bin/../lib/notepadqq/n        0   193.5M   217.5M   261.5M
1194 daygeek  /usr/bin/gnome-shell               0   203.7M   219.0M   285.1M
2945 daygeek  /usr/lib/firefox/firefox -c        0   294.5M   308.0M   410.2M
2786 daygeek  /usr/lib/firefox/firefox -c        0   341.2M   354.3M   459.1M
4193 daygeek  /usr/lib/firefox/firefox -c        0   417.4M   427.6M   519.3M
2651 daygeek  /usr/lib/firefox/firefox -c        0   417.0M   430.1M   535.6M
2114 daygeek  /usr/lib/firefox/firefox -c        0   430.6M   473.9M   610.9M
2039 daygeek  /usr/lib/firefox/firefox --        0   601.3M   677.5M   840.6M
-------------------------------------------------------------------------------
  90 1                                           0     4.8G     5.2G     8.0G

6) Как использовать команду top для просмотра использования памяти Linux

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

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

# top -b | head -10

top - 11:04:39 up 40 min,  1 user,  load average: 1.59, 1.42, 1.28
Tasks: 288 total,   2 running, 286 sleeping,   0 stopped,   0 zombie
%Cpu(s): 13.3 us,  1.5 sy,  0.0 ni, 84.4 id,  0.0 wa,  0.3 hi,  0.5 si,  0.0 st
KiB Mem : 16248572 total,  7755928 free,  4657736 used,  3834908 buff/cache
KiB Swap: 17873388 total, 17873388 free,        0 used.  9179772 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 2114 daygeek   20     3182736 616624 328228 R  83.3   3.8   7:09.72 Web Content
 2039 daygeek   20     4437952 849616 261364 S  13.3   5.2   7:58.54 firefox
 1194 daygeek   20     4046856 291288 165460 S   4.2   1.8   1:57.68 gnome-shell
 4034 daygeek   20      808556 273244  88676 S   4.2   1.7   1:44.72 chrome
 2945 daygeek   20     3309832 416572 150112 S   3.3   2.6   4:04.60 Web Content
 1137 daygeek   20      564316 197292 183380 S   2.5   1.2   2:55.76 Xorg
 2651 daygeek   20     3098420 547260 275700 S   1.7   3.4   2:15.96 Web Content
 2786 daygeek   20     2957112 463912 240744 S   1.7   2.9   3:22.29 Web Content
    1 root      20      182756  10208   7760 S   0.8   0.1   0:04.51 systemd
  442 root     -51                           S   0.8         0:05.02 irq/141-iw+
 1426 daygeek   20      373660  48948  29820 S   0.8   0.3   0:03.55 python3
 2174 daygeek   20     2466680 122196  78604 S   0.8   0.8   0:17.75 WebExtensi+

7) Как использовать команду htop для просмотра использования памяти Linux

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

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

htopКоманды имеют разные цвета, дополнительный бонус, полезный при отслеживании производительности системы.

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

8) Как использовать команду seeks для просмотра использования памяти в Linux

GlancesЭто кроссплатформенный инструмент для мониторинга системы, написанный на Python.

Вы можете просматривать всю информацию в одном месте, например: использование ЦП, использование памяти, запущенные процессы, сетевые интерфейсы, дисковый ввод-вывод, RAID, датчики, информацию о файловой системе, Docker, информацию о системе, время безотказной работы и многое другое.


via: 2day geek.com/Linux-comma…

автор:Magesh MaruthamuthuТема:lujun9972Переводчик:Мэнсин АянВычитка:wxy

Эта статья написанаLCTTоригинальная компиляция,Linux КитайЧесть запуска