首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux中每个进程的内存监控

linux中每个进程的内存监控
EN

Stack Overflow用户
提问于 2017-04-26 20:24:20
回答 2查看 639关注 0票数 0

我希望实现我的内核能够监控每个进程的内存。但是,我所能做的就是打印出进程和pid。我找不到一个可以帮助监控内存的函数。下面是我实现的内核中的代码。我使用的是Linux内核版本4.11.0-rc7。

代码语言:javascript
复制
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/resource.h>
#include <linux/sched.h>
#include <linux/syscalls.h>

asmlinkage long sys_listProcessInfo(void){
struct task_struct *process;
struct rusage usage;
int i = 0;
for_each_process(process){
    if(i%10 == 0){
    printk("Process %s\n PID: %ld\n",process->comm,(long)task_pid_nr(process));
    i++;
}
}
return 0;
}

这个只能查看进程和pid。我想知道是否有任何函数可以查找进程的内存。提前谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2017-04-26 23:11:45

对于当前进程以外的进程,请使用/proc文件系统。

代码语言:javascript
复制
  char fName[32]; // you should really only need 24
  sprintf(fName, "/proc/%d/status", pid);
  FILE* status = fopen(fName , "r" );

该文件将包含有关进程内存分配的信息(虚拟、驻留等)。详情请参见man7's page on /proc

这与this post相似,但并不完全相同。

票数 0
EN

Stack Overflow用户

发布于 2017-04-26 23:36:09

这是标准的错误内核代码(忽略锁定要求等)。函数名称和预期用途强烈暗示这只是一项大学作业。还有其他几个人提出了类似质量的问题。

因为每次很明显,询问的人根本没有准备好做这项工作,每次我都会问是谁给他们布置的作业,以及给他们提供了什么材料。

你能回答上面的问题吗?

谢谢。

编辑

查看以下内容,了解以下类型的代码示例有什么问题:http://codingtragedy.blogspot.com/2016/12/bad-kernel-tutorials-for-beginners.html

这个网站不适合回答与内核相关的问题(或大多数与此相关的低级问题)。恐怕你得请教你的同学们。最好是有人会确保这种类型的任务不会分配给没有准备的学生,甚至不会分配给

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43634144

复制
相关文章

相似问题

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