Использование ядро ​​Linux для использования на встроенной системе

Я выполняю QA / отлаживая проект на собственной встроенной Linux-системе. Проблема в том, что мы очень аккуратно работаем над памятью, и даже пара мегабайт может вызвать проблемы с нашим программным обеспечением.

То, что я вижу (иногда), заключается в том, что когда наша система выходит из строя (мягкие сбои), наше собственное программное обеспечение не воспринимает больше памяти, чем обычно. Но странно то, что на панели Linux linux MUCH больше, чем обычно, количество объектов в кеше 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 

Очевидно, это существенная разница.

Я знаю, что здесь мало информации, но это действительно вся информация, которую я должен продолжать. Есть ли способ определить, что содержит плита? Или где он был выделен или что-то в этом роде? Или, может быть, просто заставить его освободить свою память?

Это работает на плате на базе ARM с 64 МБ оперативной памяти, работающей под ядром 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