首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >分析linux内核使用的内存

分析linux内核使用的内存
EN

Stack Overflow用户
提问于 2012-03-02 09:46:49
回答 1查看 1.3K关注 1票数 1

我在一个基于ARM的嵌入式设备上安装了linux内核2.6.30。

我必须在设备上执行一些内核内存使用情况分析。

我正在考虑监控各种内核线程和模块上的ps输出,同时执行wifi开/关等操作。

你能推荐我吗?

我需要监控哪些线程?如何监控内核模块内存使用情况?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-06 10:33:31

有时直接从内核获取真实的信息是很有用的,我使用了我拼凑的这个小C程序,以一种适合于shell的输出格式获取真实的系统信息(如果需要的话,它会编译成一个非常小的二进制文件) --

代码语言:javascript
运行
复制
#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);
}

我在shell中这样使用它:

代码语言:javascript
运行
复制
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 ))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9526908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档