OOM Linux Embutido - ajuda com RAM perdida

1

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)
    
por j123b567 20.06.2016 / 16:09

1 resposta

2

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.

    
por 25.06.2016 / 14:15