Использование памяти Linux не суммируется

Использование памяти Linux не суммируется

Я пытаюсь отслеживать использование памяти на моем сервере Ubuntu. Когда я запускаю команду 'top', она показывает, что используется 70% памяти. (показано в строке 'Mem:'). Но я хочу найти процессы, которые используют мою память, и сложить их, это далеко от 70%. Может кто-нибудь помочь мне объяснить это?

Большое спасибо!

Вот мой лучший результат команды:

наверх - 20:59:06 вверх 23 дня, 33 мин, 3 пользователя, средняя загрузка: 0.06, 0.12, 0.09
Задания: всего 92, 1 работает, 91 спит, 0 остановлено, 0 зомби
ЦП: 0.3%us, 0.2%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Память: 4124236k всего, 2903104k использовано, 1221132k свободно, 147508k буферов
Своп: 4192252k всего, 440k использовано, 4191812k свободно, 2596860k кэшировано

  PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ КОМАНДА
30558 mysql 20 0 311m 36m 5956 S 0 0.9 0:00.74 mysqld
28848 цзечао 20 0 50688 9244 3144 S 0 0,2 0:05,65 питон
  956 корень 20 0 11712 8004 2964 S 0 0.2 0:39.26 ddclient - slee
28846 цзечао 20 0 49256 7652 3280 S 0 0.2 0:07.17 питон
22284 цзечао 20 0 10400 6876 1664 S 0 0,2 0:00,49 баш
30433 цзечао 20 0 10344 6776 1620 S 0 0,2 0:00,46 баш
31053 цзечао 20 0 10344 6768 1612 S 0 0,2 0:00,47 баш
28847 цзечао 20 0 48168 6096 2980 S 0 0.1 0:00.59 питон
29178 www-data 20 0 228m 5392 2052 S 0 0.1 0:00.06 apache2
29179 www-data 20 0 12796 5148 1920 S 0 0.1 0:00.02 apache2
29180 www-data 20 0 12796 5148 1920 S 0 0.1 0:00.02 apache2
29181 www-data 20 0 12796 5148 1920 S 0 0.1 0:00.02 apache2
29182 www-data 20 0 12796 5148 1920 S 0 0.1 0:00.02 apache2
29183 www-data 20 0 12796 5148 1920 S 0 0.1 0:00.02 apache2
  999 корень 20 0 11396 3948 2052 S 0 0.1 0:21.21 apache2
  926 упс 20 0 24572 3284 2280 S 0 0.1 0:00.18 упс
30933 корень 20 0 9604 3104 2484 S 0 0.1 0:00.00 sshd
22164 корень 20 0 9604 3096 2484 S 0 0.1 0:00.01 sshd
30313 корень 20 0 9604 3096 2480 S 0 0.1 0:00.00 sshd
24302 корень 20 0 9632 3024 2428 S 0 0.1 0:00.07 sshd
  787 корень 20 0 6664 2424 1988 S 0 0.1 0:00.05 sshd
    1 корень 20 0 3504 1876 1276 S 0 0.0 0:01.57 инициализация
24421 цзечао 20 0 9632 1596 992 S 0 0.0 0:00.00 sshd
  812 syslog 20 0 31044 1484 1008 S 0 0.0 1:47.00 rsyslogd

решение1

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

Попробуйте либо использовать команду free, либо посмотреть на само ядро ​​с помощью этой команды,cat /proc/meminfo.

бесплатно

% free
             total       used       free     shared    buffers     cached
Mem:       7987492    7717152     270340          0     314644    2435048
-/+ buffers/cache:    4967460    3020032
Swap:      5963772       1304    5962468

кот /proc/meminfo

% cat /proc/meminfo 
MemTotal:        7987492 kB
MemFree:          284328 kB
Buffers:          314384 kB
Cached:          2427852 kB
SwapCached:          116 kB
Active:          4698232 kB
Inactive:        2374796 kB
Active(anon):    3756264 kB
Inactive(anon):   768392 kB
Active(file):     941968 kB
Inactive(file):  1606404 kB
Unevictable:          68 kB
Mlocked:              68 kB
SwapTotal:       5963772 kB
SwapFree:        5962468 kB
Dirty:               452 kB
Writeback:             0 kB
AnonPages:       4330964 kB
Mapped:           185540 kB
Shmem:            193864 kB
Slab:             306532 kB
SReclaimable:     261520 kB
SUnreclaim:        45012 kB
KernelStack:        6192 kB
PageTables:        94376 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     9957516 kB
Committed_AS:    9671884 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      585392 kB
VmallocChunk:   34359040964 kB
HardwareCorrupted:     0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       12288 kB
DirectMap2M:     8237056 kB

Команда freeпокажет вам общий объем оперативной памяти, 7987492, в моем случае, из которых 7717152 используется и 270340 свободно. Это комбинация оперативной памяти, буферов и кэша. Вторая строка показывает, сколько из этой оперативной памяти используется буферами и кэшем, 4967460, что означает, что у меня действительно свободно 3020032 оперативной памяти.

Изстатья itworld.comоб осмыслении использования памяти:

Число буферов представляет собой блоки в памяти, которые возникают в результате доступа ядра к диску, например, когда ядру необходимо прочитать содержимое файлов. Кэшированное число показывает нам, сколько оперативной памяти используется для кэширования содержимого недавно прочитанных файлов. Число буферов увеличивается, когда уровень файловой системы обходит, в то время как кэш растет, когда файловая система используется. Оба растут по мере увеличения числа операций чтения.

ПРИМЕЧАНИЕ:Помните, что менеджер памяти ядра Linux освободит всю оперативную память, используемую для буферов и кэша, если она действительно нужна приложению.

Ресурсы

Связанный контент