組み込みシステムでは、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

明らかにこれは重要な違いです。

ここに多くの情報がないことを知っていますが、これは私が続けるべきすべてです。スラブに何があるかを確認する方法はありますか?それともどこで割り当てられますか?それとも強制的にメモリを解放しますか?

64 MBのメモリを備えた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

ベストアンサー1

おすすめ記事