임베디드 시스템에서 Linux 커널 슬래브 사용량이 계속 증가하고 있습니다.

임베디드 시스템에서 Linux 커널 슬래브 사용량이 계속 증가하고 있습니다.

저는 맞춤형 임베디드 Linux 시스템에서 프로젝트를 QA/디버깅하고 있습니다. 문제는 메모리가 매우 부족하다는 것입니다. 심지어 몇 메가바이트의 메모리라도 소프트웨어에 문제를 일으킬 수 있습니다.

내가 (때때로) 보는 것은 우리 시스템이 충돌할 때(소프트 충돌), 우리 자신의 소프트웨어가 평소보다 더 많은 메모리를 차지하지 않는다는 것입니다. 그러나 이상하게도 Linux 커널 슬랩의 32바이트 슬랩 캐시에 있는 개체 수가 평소보다 훨씬 많습니다.

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

정상적인 조건에서 보드의 모습은 다음과 같습니다.

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

분명히 이것은 중요한 차이입니다.

여기에 정보가 많지 않다는 것을 알고 있지만 이것이 제가 계속해야 할 전부입니다. 석판에 무엇이 있는지 확인할 수 있는 방법이 있나요? 아니면 어디서 할당되나요? 아니면 강제로 메모리를 해제하도록 할까요?

64mB 메모리를 갖춘 ARM 기반 마더보드에서 실행되며 2.6.30 커널을 실행합니다.

그건 그렇고, 이것이 기계에서 실행되는 전부입니다.

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]

그리고 아직도 성장하고 있어요

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

고쳐 쓰다:
현재 상태는 다음과 같습니다.

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

관련 정보