linux系统内存使用率计算,计算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

67c35043801803e160585b699fbfdcd6.png

2{

3unsigned long long user,old_user;

4unsigned long long nice,old_nice;

5unsigned long long sys,old_sys;

6 unsigned long long idle,old_idle;

7unsigned long long wait,old_wait;

8unsigned long long hirq,old_hirq;

9unsigned long long sirq,old_sirq;

10};

62427fc1e891ba77899749cae374fa8d.png

11

0ef8f621aa3d835a1d0ac3a72a9437c3.png

12struct sys_uptime

656abf8fd518dd2fefb8030280098ee8.png

13{

cad172331ec4064d24d5b5e99466cfef.png

14double uptime;

3b61cdaadd1db40e6a990e35f6ad6450.png

15double idle;

16};

b0a65d225f40875b43161b03f0e972d8.png

17

adf0c3a8aeeca6fdc2883e737aeb73b5.png

18struct sys_mem_info

7ce6c99cd598ba749b859bf770cd1359.png

19{

d44fe0ce2e3e3f502820f87f9862d66e.png

20unsigned long main_total;

af678a38b1fe287736e873a85fe79795.png

21unsigned long main_free;

48bf2205da988507963a5292ea33f4fb.png

22unsigned long main_used;

842f486bbe73994b1bb16376c9ee031c.png

23unsigned long main_buffers;

31b96b5ad95d3c92f9b61b04a708b692.png

24unsigned long main_cached;

c0eeae37d95fc2d23612969ccea56001.png

25unsigned long swap_total;

1aa2184fb4727e7c21a217527c927049.png

26unsigned long swap_free;

11e9a1c25de4e14dd6ea3827c0058517.png

27unsigned long swap_used;

4cc48a4b184299d5875a0d5f68bd45ec.png

28unsigned long swap_cached;

29};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值