织梦CMS - 轻松建站从此开始!

陕西快乐十分走势图表:罗索实验室

当前位置: 主页 > 基础技术 > Linux开发专题 >

Linux计算cpu使用率

jackyhwei 发布于 2016-12-16 19:20 点击:次 
计算总的 CPU 使用率 TOTALCPUUSE 1)采样两个足够短的时间间隔的 CPU 快照,即读取 /proc/stat 文件,获取两个时间点的下列数据: CPUT1 (user1, nice1, system1, idle1, iowait1, irq1, softirq1, stealstolen1, guest1);
TAG: cpu使用率  proc  

湖南快乐十分玩法 www.7mhm0.cn 计算总的 CPU 使用率 TOTALCPUUSE

1)采样两个足够短的时间间隔的 CPU 快照,即读取 /proc/stat 文件,获取两个时间点的下列数据:

CPUT1 (user1, nice1, system1, idle1, iowait1, irq1, softirq1, stealstolen1, guest1);
CPUT2 (user2, nice2, system2, idle2, iowait2, irq2, softirq2, stealstolen2, guest2);
2)计算总的 CPU 时间 totalCPUTime:

CPUTime1 = user1 + nice1 + system1 + idle1 + iowait1 + irq1 + softirq1 + stealstolen1 + guest1;
CPUTime2 = user2 + nice2 + system2 + idle2 + iowait2 + irq2 + softirq2 + stealstolen2 + guest2;
totalCPUTime = CPUTime2 – CPUTime1;

3)计算 CPU 空闲时间 idleCPUTime:

idleCPUTime = idle2 – idle1;

4)计算总的 CPU 使用率 totalCPUUse:

totalCPUUse = (totalCPUTime – idleCPUTime) / totalCPUTime;

计算某一进程的 CPU 使用率 PROCESSCPUUSE

1)采样两个足够短的时间间隔的 CPU 快照和对应的进程快照,即读取 /proc/stat 文件,获取两个时间点的下列数据:

CPUT1 (user1, nice1, system1, idle1, iowait1, irq1, softirq1, stealstolen1, guest1);
CPUT2 (user2, nice2, system2, idle2, iowait2, irq2, softirq2, stealstolen2, guest2);
读取 /proc/[PID]/stat 文件,获取两个时间点的下列数据:

ProcessT1 (utime1, stime1, cutime1, cstime1);
ProcessT2 (utime2, stime2, cutime2, cstime2);
2)计算总的 CPU 时间 totalCPUTime 和进程时间 processTime:

CPUTime1 = user1 + nice1 + system1 + idle1 + iowait1 + irq1 + softirq1 + stealstolen1 + guest1;
CPUTime2 = user2 + nice2 + system2 + idle2 + iowait2 + irq2 + softirq2 + stealstolen2 + guest2;
totalCPUTime = CPUTime2 – CPUTime1;

processTime1 = utime1 + stime1 + cutime1 + cstime1;
processTime2 = utime2 + stime2 + cutime1 + cstime2;
processTime = processTime2 – processTime1;

3)计算该进程的 CPU 使用率 processCPUUse:

processCPUUse = processTime / totalCPUTime;

计算某一线程的 CPU 使用率 threadCPUUse

1)采样两个足够短的时间间隔的 CPU 快照和对应的线程快照,即读取 /proc/stat 文件,获取两个时间点的下列数据:

CPUT1 (user1, nice1, system1, idle1, iowait1, irq1, softirq1, stealstolen1, guest1);
CPUT2 (user2, nice2, system2, idle2, iowait2, irq2, softirq2, stealstolen2, guest2);
读取 /proc/[PID]/task/[TID]/stat 文件,获取两个时间点的下列数据:

threadT1 (utime1, stime1);
threadT2 (utime2, stime2);
2)计算总的 CPU 时间 totalCPUTime 和线程时间 threadTime:

CPUTime1 = user1 + nice1 + system1 + idle1 + iowait1 + irq1 + softirq1 + stealstolen1 + guest1;
CPUTime2 = user2 + nice2 + system2 + idle2 + iowait2 + irq2 + softirq2 + stealstolen2 + guest2;
totalCPUTime = CPUTime2 – CPUTime1;

threadTime1 = utime1 + stime1;
threadTime2 = utime2 + stime2;
threadTime = threadTime2 – threadTime1;

3)计算该线程的 CPU 使用率 threadCPUUse:

threadCPUUse = threadTime / totalCPUTime;



2.5、多核情况下 CPU 使用率的计算

2.5.1、基本思想

首先,通过读取 /proc/stat 文件获取总的 CPU 时间,读取 /proc/[PID]/stat 获取进程 CPU 时间,读取 /proc/[PID]/task/[TID]/stat 获取线程 CPU 时间,读取 /proc/cpuinfo 获取 CPU 个数。

在多核情况下计算进程或线程的 CPU 使用率,用上面的方式得到的通常是相对于 CPU 所有核的总共时间的占用率,而我们通常习惯得到进程或线程对某一个单核的占用率。所以我们可以按上面的方式计算得到 CPU 占用率,然后把结果乘上 CPU 的核数,即可得到进程或线程相对于一个单核的占用率。

2.5.2、计算总的 CPU 使用率

同 2.4.2。

2.5.3、计算某一进程的 CPU 使用率 mProcessCPUUse

1)同 2.4.3 计算某一进程的 CPU 使用率 processCPUUse;

2)读取 /proc/cpuinfo 文件获取逻辑 CPU(processor) 的个数(参见 1.1): processorNum

3)多核情况下该进程的 CPU 使用率 mProcessCPUUse:

mProcessCPUUse = processCPUUse * processorNum;

2.5.4、计算某一线程的 CPU 使用率 mThreadCPUUse

1)同 2.4.4 计算某一线程的 CPU 使用率 threadCPUUse;

2)读取 /proc/cpuinfo 文件获取逻辑 CPU(processor) 的个数(参见 1.1): processorNum

3)多核情况下该线程的 CPU 使用率 mThreadCPUUse:

mThreadCPUUse = threadCPUUse * processorNum;

(fyxichen)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [//www1.rosoo.net/a/201612/17487.html]
本文出处:CSDN博客 作者:fyxichen
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
将本文分享到微信
推荐内容

  • 端午小长假 宜春接游270.6万人次 旅游综合收入12.73亿元 2018-12-01
  • 落实党委的政治责任和领导责任,开创我国高等教育发展新局面 2018-07-25
  • 人民日报召开习近平新闻思想理论研讨会 2018-07-25
  • 跟着抖音去旅行,五一小长假,你的专属攻略请查收! 2018-07-24
  • 把课堂上的重点难点录下来 教学类短视频平台前景几何 2018-07-24
  • 蔡英文将二访巴拉圭?台媒:主要是想过境美国! 2018-07-23
  • 绷紧纪律弦,坚决对诱惑说“不” 2018-07-23
  • 李纪恒--内蒙古频道--人民网 2018-07-22
  • 端午假期全国迎客8910万人次 传统文化活动受青睐 2018-07-21
  • [调皮]“谈判技巧”始终摆脱不了“被迫谈判”的尴尬! 2018-07-21
  • 郭树清谈非法集资风险:收益率超6%需谨慎 2018-07-20
  • 优质金融资源“注”入云南 2018-07-20
  • 金灿荣:特朗普稳住阵脚后或对华更强硬 2018-07-19
  • 风雨兼程,与党和人民同行 2018-07-19
  • 774| 488| 915| 726| 611| 769| 334| 332| 834| 863|