当前位置: 技术问答>linux和unix
如何在内核中获取当前进程的内存使用及CPU占用率
来源: 互联网 发布时间:2016-08-23
本文导语: 最近项目所需,需要在内核中查看指定进程所占用内存大小及占用CPU的使用比率,和OOP信息, 当前进程使用的内存堆栈可以从task_struct->mm_struct->total_vm中获得,但是获得的是虚拟内存使用总量, 实际物理内存使用量...
最近项目所需,需要在内核中查看指定进程所占用内存大小及占用CPU的使用比率,和OOP信息,
当前进程使用的内存堆栈可以从task_struct->mm_struct->total_vm中获得,但是获得的是虚拟内存使用总量,
实际物理内存使用量怎么计算呢!
cpu的使用比率和OOP信息从什么地方可以获得呢,或者通过什么方法可以计算出来,请有指教。 谢谢
当前进程使用的内存堆栈可以从task_struct->mm_struct->total_vm中获得,但是获得的是虚拟内存使用总量,
实际物理内存使用量怎么计算呢!
cpu的使用比率和OOP信息从什么地方可以获得呢,或者通过什么方法可以计算出来,请有指教。 谢谢
|
/proc//
|
楼上的怎么乱讲,根本不存在。
|
当前任务的task_struct中有两个结构,utime和stime分别描述了当前任务在用户态和内核态所消耗的CPU时间,start_time描述了当前任务的起始运行时间,通过单位换算和计算,就可以获得当前任务的CPU率了!
|
好像在sched.h里有这样一个定义 union thread_union{
struct thread_info thread_info;
unsigned long stack[THREAD_SIZE/sizeof(long)]
};
struct thread_info thread_info;
unsigned long stack[THREAD_SIZE/sizeof(long)]
};