php 计算cpu使用率,php实现在linux下计算cpu和mem的使用率情况

Linux下可以非常方便的读取系统、进程、以及线程的运行状态和信息。

在/proc下面,可以读取系统的运行参数

比如:

cpuinfo 获取服务器的cpu信息

meminfo 获取内存的使用情况

stat 获取cpu的活动情况,累计cpu从系统启动到现在的时长,单位都是1/100秒

statm 获取内存的活动情况

在/proc/下面,可以读取pid为的进程信息,

比如:

stat 获取cpu的占用时间,累计进程占用cpu的时长,单位是1/100秒

statm获取内存的占用空间大小

在/proc//task/下面是读取tid为的线程信息

比如:

stat,statm等,与进程中文件结构相同

计算某个进程cpu和内存使用率

内存使用率计算:

总内存量:totalmem = meminfo中获取内存的总量MemTotal对应的值

进程实际占用内存大小:processmem = /status文件中获取VmRSS对应的值

Ps: (实际也可以在/statm中获取,但里面是页数,要乘以每页的大小字节数,一般4k)

内存使用率:pmem = processmem/totalmem * 100%;

cpu使用率计算:

cpu总的使用时长: totalcpu1 = stat文件第一行数字总和,里面是各种时间,user + nice + system + idle + iowait + irq + softirq + stealstolen + guest

进程使用cpu时长:processcpu1 = 读取/stat文件,按照空格区分,第14位到17位数字,分别表示为utime,stime,cutime,cstime,时长为utime+stime

ps:(有些文章写需要四个时间加和,但我测试后结果和top,ps不一致,后看top源文件,发现并没有使用cutime,cstime,因此去掉)

隔一段时间后,在同样方法取一次,标记为totalcpu2,processcpu2

ps:(间隔时间不能过短,因为文件中记录的时间单位为1/100秒,即至少要大于10毫秒才有意义)

cpu核数:cpunum = /proc/stat中,可以根据cpu[0-9]计算cpu核数

cpu使用率:pcpu = (processcpu2-processcpu1)/(totalcpu2-totalcpu1)*cpunum*100%

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值