计算Linux统和进程的CPU及内存使用率.docVIP

计算Linux统和进程的CPU及内存使用率.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算Linux统和进程的CPU及内存使用率

基本原理 1)系统CPU使用率等于两个时间点的CPU非空闲时间差除以CPU时间总量差得到的百分比,这两者可从/proc/stat文件获得。 2)系统内存使用率等于系统物理内存消耗量除以系统物理内存总量(memtotal,以KB为单位)得到的百分比,这两者可从/proc/meminfo文件获得。 3)进程CPU使用率等于进程CPU时间(pct,以jiffies为单位)除以进程运行时间(pt)得到的百分比,pct从/proc/pid/stat文件读取utime和stime字段相加即得,pt等于系统运行时间(st,以秒为单位)减去进程启动时间(pst,以jiffies为单位),st从/proc/uptime文件获得,pst从/proc/pid/stat文件读取starttime字段获得。 4)进程内存使用率等于进程驻留集大小(rss)除以系统物理内存总量(memtotal,以KB为单位)得到的百分比,rss从/proc/pid/stat读取rss字段得到,以页数为单位。 代码实现 1)基本结构和接口定义在proc_stat.h头文件内,如下所示 1struct sys_cpu_time 2{ 3 unsigned long long user,old_user; 4 unsigned long long nice,old_nice; 5 unsigned long long sys,old_sys; 6 unsigned long long idle,old_idle; 7 unsigned long long wait,old_wait; 8 unsigned long long hirq,old_hirq; 9 unsigned long long sirq,old_sirq; 10}; 11 12struct sys_uptime 13{ 14 double uptime; 15 double idle; 16}; 17 18struct sys_mem_info 19{ 20 unsigned long main_total; 21 unsigned long main_free; 22 unsigned long main_used; 23 unsigned long main_buffers; 24 unsigned long main_cached; 25 unsigned long swap_total; 26 unsigned long swap_free; 27 unsigned long swap_used; 28 unsigned long swap_cached; 29}; 30 31struct system_stat 32{ 33 sys_cpu_time ct; 34 sys_mem_info mi; 35 sys_uptime ut; 36}; 37 38struct process_stat 39{ 40 char name[16]; 41 char state; 42 int ppid; 43 int pgrp; 44 int session; 45 int tty_nr; 46 int tpgid; 47 unsigned int flags; 48 unsigned long minflt; 49 unsigned long cminflt; 50 unsigned long majflt; 51 unsigned long cmajflt; 52 unsigned long utime; 53 unsigned long stime; 54 long cutime; 55 long cstime; 56 long priority; 57 long nice; 58 long threads; 59 long iterealvalue; 60 unsigned long long starttime; 61 unsigned long vsize; 62 long rss; 63}; 64 65struct sys_mem_entry 66{ 67 const char *name; 68 unsigned long *val; 69} ; 70 71 static const int PROC_STAT = 0x0001; 72static

文档评论(0)

abns85 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档