嵌入式系统上Linux内核slab的使用量不断增长

嵌入式系统上Linux内核slab的使用量不断增长

我正在自定义嵌入式 Linux 系统上对项目进行质量检查/调试。问题是我们的内存非常紧张,甚至几兆内存也会导致我们的软件出现问题。

我(有时)看到的是,当我们的系统崩溃(软崩溃)时,我们自己的软件不会比平时占用更多的内存。但奇怪的是,Linux 内核 Slab 的 32 字节 Slab 缓存中的对象数量比正常数量高得多:

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

显然这是一个显着的差异。

我知道这里没有太多信息,但这确实是我必须继续提供的所有信息。有什么办法可以确定板坯中含有什么吗?或者它是从哪里分配的或类似的东西?或者也许只是强迫它释放内存?

它在基于 ARM 的主板上运行,具有 64mB 内存,运行 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

相关内容