куда уходит память (нет, не буферы или кеш)


8

может кто-нибудь сказать мне, куда уходит память: (нет, на этот раз ни буфера, ни кеша)

# free
             total       used       free     shared    buffers     cached
Mem:       3928200    3868560      59640          0       2888      92924
-/+ buffers/cache:    3772748     155452
Swap:      4192956     226352    3966604 

сверху, отсортировано по памяти, по убыванию:

top - 13:42:06 up 1 day,  3:47,  2 users,  load average: 0.08, 0.12, 0.36
Tasks: 228 total,   1 running, 227 sleeping,   0 stopped,   0 zombie
Cpu0  :  2.0%us,  4.0%sy,  0.0%ni, 90.1%id,  0.0%wa,  0.0%hi,  4.0%si,  0.0%st
Cpu1  :  0.0%us,  0.0%sy,  0.0%ni,  0.0%id,100.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   3928200k total,  3868020k used,    60180k free,     2896k buffers
Swap:  4192956k total,   226048k used,  3966908k free,    82068k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 3863 root      20   0  902m 199m 3296 S    7  5.2  99:08.77 ndsd
21906 root      20   0  138m 9076 2988 S    0  0.2   0:00.02 sfcbd
 2332 root      20   0  126m 4660 1332 S    0  0.1   0:17.72 mono
 4243 wwwrun    20   0  683m 4468  668 S    0  0.1   0:07.38 java
 2994 root      20   0  202m 2288 1660 S    0  0.1   6:10.02 httpstkd
 4338 root      20   0  184m 2240 1112 S    0  0.1   0:00.52 namcd
21898 root      20   0 32368 1832 1256 R    1  0.0   0:00.08 top

Фактически, некоторое время назад Oom включился и разбил систему (паника ядра), и я боюсь, что мы снова недалеко от этого момента ....

ОБНОВИТЬ

 # cat /proc/meminfo                                                     
 MemTotal:        3928200 kB                                             
 MemFree:           51336 kB                                             
 Buffers:            2964 kB                                             
 Cached:            72876 kB                                             
 SwapCached:        29128 kB                                             
 Active:           233440 kB                                             
 Inactive:          88040 kB                                             
 Active(anon):     188920 kB                                             
 Inactive(anon):    56752 kB                                             
 Active(file):      44520 kB                                             
 Inactive(file):    31288 kB                                             
 Unevictable:           0 kB                                             
 Mlocked:               0 kB                                             
 SwapTotal:       4192956 kB                                             
 SwapFree:        3966824 kB                                             
 Dirty:                32 kB                                             
 Writeback:             0 kB                                             
 AnonPages:        225112 kB                                             
 Mapped:            11356 kB                                             
 Shmem:                32 kB                                             
 Slab:            1624080 kB                                             
 SReclaimable:      13740 kB                                             
 SUnreclaim:      1610340 kB                                             
 KernelStack:        4176 kB                                             
 PageTables:        10500 kB                                             
 NFS_Unstable:          0 kB                                             
 Bounce:                0 kB                                             
 WritebackTmp:          0 kB                                             
 CommitLimit:     6157056 kB                                             
 Committed_AS:    2397684 kB                                             
 VmallocTotal:   34359738367 kB                                          
 VmallocUsed:      441372 kB                                             
 VmallocChunk:   34359246755 kB                                          
 HardwareCorrupted:     0 kB                                             
 HugePages_Total:       0                                                
 HugePages_Free:        0                                                
 HugePages_Rsvd:        0                                                
 HugePages_Surp:        0                                                
 Hugepagesize:       2048 kB                                             
 DirectMap4k:       10240 kB                                             
 DirectMap2M:     4184064 kB                                             

slabtop

 Active / Total Objects (% used)    : 9041019 / 9207548 (98.2%)          
 Active / Total Slabs (% used)      : 401132 / 401156 (100.0%)           
 Active / Total Caches (% used)     : 91 / 159 (57.2%)                   
 Active / Total Size (% used)       : 1491537.88K / 1519791.56K (98.1%)  
 Minimum / Average / Maximum Object : 0.02K / 0.17K / 4096.00K           

  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME              
4240470 4240319  99%    0.12K 141349       30    565396K pid             
2245140 2219675  98%    0.25K 149676       15    598704K size-256        
2238090 2210087  98%    0.12K  74603       30    298412K size-128        
...                                                                             

2
Любые сетевые файловые системы и тому подобное? Что /usr/bin/slabtopговорит? Похоже, что использование памяти не происходит в пользовательском пространстве, поэтому внимательно рассмотрим использование ядра.
ЗАО

хорошо .... кажется, что так ... (см. обновление)
Марки

netstat -an показывает много-много ESTABLISHED или SYN_SENT?
Пол М

На самом деле, нет. netstat -an | grep EST | wc -l = 129, SYN_SENT = 0
Марки

1
что произойдет, если вы включите потоки ядра в htop? что это за ядро? возможно это протекает
Янус Троелсен

Ответы:


2

Если вы работаете, у вас почти наверняка есть приложение с утечкой памяти. Часто нарушителем является тот, кого ядро ​​выбирает убить (но иногда нет).

Вы пробовали что-то вроде memtop ?


Пользователь уже предоставил topвывод, отсортированный по памяти. В большинстве дистрибутивов вершина гораздо чаще встречается и может предоставить необходимую информацию. Если у вас есть конкретная опция для предложения memtop, чтобы обеспечить лучший результат, укажите это.
Магеллан

Я думал о memtop, потому что он специально создан для того, чтобы перехватывать некорректно работающие длительные процессы: «Несмотря на то, что по выводу он напоминает команду (h) top), он предназначен для выполнения в течение длительных периодов времени (дней / недель / даже месяцев) и итерации в минутах или часах. Одно из предполагаемых применений - это когда вы пытаетесь уменьшить потребление памяти вашего устройства или пытаетесь идентифицировать неправильно работающее приложение (утечки памяти и т. д.). "
darkcontrast

Также я собирался упомянуть, что немного подозрительно, что cpu1 показывает 100% iowait. Возможно, что-то зациклилось на доступе к диску?
темный контраст

Все хорошие вещи, чтобы добавить к вашему ответу.
Магеллан

1

Вы можете выполнить

find /proc -name oom_score -exec echo -n "{}   " \; -exec cat {} \; | awk '{print  $2, $1| "sort -n" }

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


0

slabtop показывает как минимум 1,3 ГБ памяти, используемой в slab.

Не видя остальной части slabtop, трудно сказать, что было не так, но если это inode или записи каталога, эти статьи могут помочь:

http://rackerhacker.com/2008/12/03/reducing-inode-and-dentry-caches-to-keep-oom-killer-at-bay/

http://people.arsc.edu/~kcarlson/software/man/drop_caches.html

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.