
Я пытаюсь отслеживать использование памяти на моем сервере 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 освободит всю оперативную память, используемую для буферов и кэша, если она действительно нужна приложению.
Ресурсы