1
我在基于ARM的嵌入式设备上安装了Linux内核2.6.30。剖析Linux内核使用的内存
我必须在设备上执行一些内核内存使用情况分析。
我想监视各种内核线程和模块ps输出的同时,我进行操作,如无线开/关等
你能不能给我建议:
我需要哪些线程监控?如何监视内核模块的内存使用情况?
我在基于ARM的嵌入式设备上安装了Linux内核2.6.30。剖析Linux内核使用的内存
我必须在设备上执行一些内核内存使用情况分析。
我想监视各种内核线程和模块ps输出的同时,我进行操作,如无线开/关等
你能不能给我建议:
我需要哪些线程监控?如何监视内核模块的内存使用情况?
有时候直接从内核获取真实信息是非常有用的,我已经使用这个小C程序将所有适合shell的输出格式的系统信息汇集到一起(编译成一个漂亮的如果该事项小二进制) -
#include <sys/sysinfo.h>
int main(int argc, char **argv){
struct sysinfo info;
sysinfo(&info);
printf( "UPTIME_SECONDS=%d\n"
"LOAD_1MIN=%d\n"
"LOAD_5MIN=%d\n"
"LOAD_15MIN=%d\n"
"RAM_TOT=%d\n"
"RAM_FREE=%d\n"
"MEMUSEDKB=%d\n"
"RAM_SHARED=%d\n"
"RAM_BUFFERS=%d\n"
"SWAP_TOT=%d\n"
"SWAP_FREE=%d\n"
"PROCESSES=%d\n",
info.uptime,
info.loads[0],
info.loads[1],
info.loads[2],
info.totalram,
info.freeram,
(info.totalram-info.freeram)*info.mem_unit/1024,
info.sharedram,
info.bufferram,
info.totalswap,
info.freeswap,
info.procs);
}
我用它的外壳是这样的:
eval `sysinfo`
BEFORERAM=$MEMUSEDKB
command &
sleep .1 #sleep value may need to be adjusted depending on command's run time
eval `sysinfo`
AFTERRAM=$MEMUSEDKB
echo RAMDELTA is $(($AFTERRAM - BEFORERAM))
什么是你面对的,让你想要做的分析问题? – 2012-03-02 19:23:51
@PavanManjunath基本上我们希望有尽可能多的内存可用于应用程序使用。我试图找出内存被内核占用/占用的方式的一些低效率。 – abc 2012-03-02 20:03:54