Uso do slab do kernel Linux crescendo no sistema embarcado

3

Estou no processo de controle de qualidade / depuração de um projeto em um sistema linux incorporado personalizado. O problema é que estamos muito apertados na memória e até mesmo alguns megas podem causar problemas com o nosso software.

O que estou vendo (às vezes) é que, quando nosso sistema trava (falhas suaves), nosso próprio software não ocupa mais memória do que o normal. Mas o que é estranho é que o kernel do linux do linux tem um número de objetos MUITO maior do que o normal em seu cache slab de 32 bytes:

size-32           103674 103734     32  113    1 : tunables  120   60    0 : slabdata    918    918      0

É assim que a placa se parece em circunstâncias normais:

size-32             5400   6554     32  113    1 : tunables  120   60    0 : slabdata     58     58      0

Obviamente, essa é uma diferença significativa.

Eu sei que não há muita informação aqui, mas esta é realmente toda a informação que tenho para continuar. Existe alguma maneira de determinar o que a laje contém? Ou onde foi alocado ou algo parecido? Ou talvez apenas forçá-lo a liberar sua memória?

Isso está sendo executado em uma placa baseada em ARM com 64mB de memória RAM executando um kernel 2.6.30.

Btw, essa é a totalidade do que está sendo executado na máquina.

10711  8778 root     R     2980  4.9   0  0.0 top
 8745  2740 root     S     6452 10.7   0  0.0 sshd: root@ttyp1
 9411  2740 root     S     6312 10.4   0  0.0 sshd: root@ttyp2
 2740     1 root     S     3704  6.1   0  0.0 /usr/sbin/sshd
 8778  8745 root     S     2984  4.9   0  0.0 -sh
10034  9411 root     S     2984  4.9   0  0.0 -sh
    1     0 root     S     2980  4.9   0  0.0 init
 9432     1 root     S     2848  4.7   0  0.0 runsv ui
 1115     1 root     S <   1576  2.6   0  0.0 udevd --daemon
  989     2 root     SW<      0  0.0   0  0.0 [mmcqd]
  223     2 root     SW<      0  0.0   0  0.0 [kswapd0]
  175     2 root     SW<      0  0.0   0  0.0 [kblockd/0]
  222     2 root     SW       0  0.0   0  0.0 [pdflush]
  221     2 root     SW       0  0.0   0  0.0 [pdflush]
    6     2 root     SW<      0  0.0   0  0.0 [khelper]
    5     2 root     SW<      0  0.0   0  0.0 [events/0]
  186     2 root     SW<      0  0.0   0  0.0 [khubd]
    2     0 root     SW<      0  0.0   0  0.0 [kthreadd]
  220     2 root     SW       0  0.0   0  0.0 [khungtaskd]
    3     2 root     SW<      0  0.0   0  0.0 [ksoftirqd/0]
    4     2 root     SW<      0  0.0   0  0.0 [watchdog/0]
   12     2 root     SW<      0  0.0   0  0.0 [async/mgr]
  189     2 root     SW<      0  0.0   0  0.0 [kseriod]
  194     2 root     SW<      0  0.0   0  0.0 [kmmcd]
  224     2 root     SW<      0  0.0   0  0.0 [aio/0]
  225     2 root     SW<      0  0.0   0  0.0 [unionfs_siod/0]
  226     2 root     SW<      0  0.0   0  0.0 [nfsiod]
  227     2 root     SW<      0  0.0   0  0.0 [crypto/0]
  895     2 root     SW<      0  0.0   0  0.0 [zd1211rw]
  899     2 root     SW<      0  0.0   0  0.0 [mtdblockd]
  972     2 root     SW<      0  0.0   0  0.0 [usbhid_resumer]
  992     2 root     SW<      0  0.0   0  0.0 [rpciod/0]

e ainda está crescendo

size-32           181312 181365     32  113    1 : tunables  120   60    0 : slabdata   1605   1605      0

Atualização:
Este é o estado atual:

Mem: 38416K used, 21764K free, 0K shrd, 1836K buff, 11548K cached
CPU:  0.0% usr  0.0% sys  0.0% nic  100% idle  0.0% io  0.0% irq  0.0% sirq
Load average: 0.01 0.02 0.05 1/28 11050
  PID  PPID USER     STAT   VSZ %MEM CPU %CPU COMMAND
 8745     1 root     S     6452 10.7   0  0.0 sshd: root@ttyp1
11045     1 root     S     3704  6.1   0  0.0 /usr/sbin/sshd
 8778  8745 root     S     2984  4.9   0  0.0 -sh
    1     0 root     S     2980  4.9   0  0.0 init
11050  8778 root     R     2980  4.9   0  0.0 top
  989     2 root     SW<      0  0.0   0  0.0 [mmcqd]
  223     2 root     SW<      0  0.0   0  0.0 [kswapd0]
  175     2 root     SW<      0  0.0   0  0.0 [kblockd/0]
  222     2 root     SW       0  0.0   0  0.0 [pdflush]
  221     2 root     SW       0  0.0   0  0.0 [pdflush]
    6     2 root     SW<      0  0.0   0  0.0 [khelper]
    5     2 root     SW<      0  0.0   0  0.0 [events/0]
  186     2 root     SW<      0  0.0   0  0.0 [khubd]
    2     0 root     SW<      0  0.0   0  0.0 [kthreadd]
  220     2 root     SW       0  0.0   0  0.0 [khungtaskd]
    3     2 root     SW<      0  0.0   0  0.0 [ksoftirqd/0]
    4     2 root     SW<      0  0.0   0  0.0 [watchdog/0]
   12     2 root     SW<      0  0.0   0  0.0 [async/mgr]
  189     2 root     SW<      0  0.0   0  0.0 [kseriod]
  194     2 root     SW<      0  0.0   0  0.0 [kmmcd]
  224     2 root     SW<      0  0.0   0  0.0 [aio/0]
  225     2 root     SW<      0  0.0   0  0.0 [unionfs_siod/0]
  226     2 root     SW<      0  0.0   0  0.0 [nfsiod]
  227     2 root     SW<      0  0.0   0  0.0 [crypto/0]
  895     2 root     SW<      0  0.0   0  0.0 [zd1211rw]
  899     2 root     SW<      0  0.0   0  0.0 [mtdblockd]
  972     2 root     SW<      0  0.0   0  0.0 [usbhid_resumer]
  992     2 root     SW<      0  0.0   0  0.0 [rpciod/0]


size-32           191069 191083     32  113    1 : tunables  120   60    0 : slabdata   1691   1691      0
    
por Falmarri 23.05.2011 / 02:10

0 respostas