6 linux cpu performance multithreading utilization
我需要获取进程中所有线程的CPU利用率指标.
constraints =不允许在线程中编写其他代码
我知道你可以使用"top"命令,但还有其他方法吗?是否有"ps"的标志?
提前感谢您的帮助.
小智 6
您可以阅读内容/proc/[your PID]/stat以获取整个过程的信息,如果您有2.6内核,还可以获得/proc/[your PID]/task/[thread ID]/stat各个线程的信息.(见这里)
具体来说,您将找到以下两个字段:
此进程已在用户模式下安排的jiffies数.
stime%lu
此进程已在内核模式下调度的jiffies数.
cutime%ld
这里有问题的部分是给出值的单位.jiffy是1/HZ秒,其中HZ是内核时钟滴答率并且确定该时钟速率是困难的部分.
如果您只需要一个特定的系统,您可以只进行一些测试或查看内核头文件并将此值硬编码到您的程序中.如果您想知道如何以更一般的方式确定它,您可以通过查看其源代码来查看top之类的工具是如何做到的(请参阅old_Hertz_hack()函数和相关注释)
| 归档时间: |
|
| 查看次数: |
13525 次 |
| 最近记录: |