Total_vm foi mal calculado por mim e o relatório da OOM está correto. app
alocou 59739 páginas, o que é 233MB. Então, esta é a razão correta da OOM.
Eu tenho um pequeno sistema Linux com 256MB de RAM. Estou um pouco confuso, onde a RAM pode estar perdida? Ele está rodando o velho kernel linux 2.6.38 e eu não consigo fazer o upgrade (alguma placa ARM específica).
O SHM e todos os sistemas de arquivos montados no tmpfs estão quase vazios shmem: 448kB
O Everyhing é consumido pelas páginas active_anon, mas os processos em execução não correspondem a isso. Soma de total_vm é apenas 90MB e há duplicatas, memória compartilhada, memória não alocada ... Mas active_anon é relatado como 235MB. Por quê? Como posso resolver esse problema? Existe algum vazamento de memória no kernel?
Aqui está o dmesg relevante
Mem-info:
Normal per-cpu:
CPU 0: hi: 90, btch: 15 usd: 14
active_anon:60256 inactive_anon:67 isolated_anon:0
active_file:0 inactive_file:185 isolated_file:0
unevictable:0 dirty:0 writeback:0 unstable:0
free:507 slab_reclaimable:120 slab_unreclaimable:463
mapped:108 shmem:112 pagetables:217 bounce:0
Normal free:2028kB min:2036kB low:2544kB high:3052kB active_anon:241024kB inactive_anon:268kB active_file:0kB inactive_file:740kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:260096kB mlocked:0k
lowmem_reserve[]: 0 0
Normal: 37*4kB 139*8kB 42*16kB 1*32kB 1*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 2028kB
305 total pagecache pages
65536 pages of RAM
622 free pages
1976 reserved pages
404 slab pages
393 pages shared
0 pages swap cached
[ pid ] uid tgid total_vm rss cpu oom_adj oom_score_adj name
[ 713] 0 713 666 40 0 0 0 busybox
[ 719] 0 719 634 18 0 0 0 busybox
[ 725] 0 725 634 15 0 0 0 busybox
[ 740] 0 740 654 19 0 0 0 inetd
[ 752] 0 752 634 17 0 0 0 ifplugd
[ 761] 0 761 634 21 0 0 0 busybox
[ 790] 0 790 4297 110 0 0 0 app
[ 792] 0 792 635 15 0 0 0 getty
[ 812] 0 812 634 16 0 0 0 exe
[ 849] 101 849 630 57 0 0 0 lighttpd
[ 850] 101 850 3005 218 0 0 0 php-cgi
[ 851] 101 851 3005 218 0 0 0 php-cgi
[ 3172] 0 3172 72156 59739 0 0 0 app
[ 3193] 0 3193 675 23 0 0 0 ntpd
[ 4003] 0 4003 634 15 0 0 0 ntpd_prog
[ 4004] 0 4004 634 15 0 0 0 hwclock
[ 4005] 0 4005 634 20 0 0 0 hwclock
Out of memory: Kill process 3172 (app) score 912 or sacrifice child
Killed process 3172 (app) total-vm:288624kB, anon-rss:238684kB, file-rss:272kB
Aqui está uma lista de sistemas de arquivos montados. Sistema de arquivos raiz é r / w YAFFS2 no flash MTD.
rootfs on / type rootfs (rw)
/dev/root on / type yaffs2 (rw,relatime)
none on /proc type proc (rw,relatime)
none on /sys type sysfs (rw,relatime)
mdev on /dev type tmpfs (rw,nosuid,relatime,size=10240k,mode=755)
none on /proc/bus/usb type usbfs (rw,relatime)
none on /dev/pts type devpts (rw,relatime,mode=622)
shm on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,relatime)
none on /tmp type tmpfs (rw,relatime,size=102400k,mode=777)
none on /run type tmpfs (rw,relatime,size=10240k,mode=755)