旧博文,搬到 csdn
原文:http://rebootcat.com/2018/05/20/analyze_cpu/

python脚本采集cpu

经常要做一些 linux 系统上的性能分析或者采集 cpu/mem/bandwidth 上报到监控系统。

分享一个我平常常用到的 cpu 采集脚本,原理是分析 /proc/stat 文件, 脚本如下:

#!/usr/bin/env python
# -*- coding:utf8 -*-import time
import copyclass CpuWatch(object):def __init__(self, time_step):self.cpufile_ = '/proc/stat'self.watch_time_step_ = time_step  # 60 sreturn# 采集cpu信息def read_cpu(self):cpu_info = {}cpufile = self.cpufile_with open(cpufile, 'r') as fin:for line in fin:line_fields = line.split()if line_fields[0] != "cpu":continuetotal = 0for field in line_fields:if field == "cpu":continuetotal += int(field)cpu_info = {"User": int(line_fields[1]),"Sys": int(line_fields[3]),"Idle": int(line_fields[4]),"Steal": int(line_fields[8]),"Wait": int(line_fields[5]),"Total": total}fin.close()return cpu_infodef get_avg_cpu(self, cpu_info_old, cpu_info):if not cpu_info_old or not cpu_info:return Noneresult = {}if set(cpu_info.keys()) != set(cpu_info_old.keys()):return Nonedelta_total = cpu_info["Total"]  -   cpu_info_old["Total"]delta_user  = cpu_info["User"]   -   cpu_info_old["User"]delta_sys   = cpu_info["Sys"]    -   cpu_info_old["Sys"]delta_idle  = cpu_info["Idle"]   -   cpu_info_old["Idle"]delta_wait  = cpu_info["Wait"]   -   cpu_info_old["Wait"]delta_steal = cpu_info["Steal"]  -   cpu_info_old["Steal"]last_cpu_info = cpu_inforesult = {"cpu_user": int(float(delta_user)/float(delta_total) * 100),"cpu_sys": int(float(delta_sys)/float(delta_total) * 100),"cpu_wait": int(float(delta_wait)/float(delta_total) * 100),"cpu_steal": int(float(delta_steal)/float(delta_total) * 100),"cpu_idle": int(float(delta_idle)/float(delta_total) * 100),"cpu_util": int(float(delta_total - delta_idle - delta_wait - delta_steal)/float(delta_total) * 100)}print(result)return resultdef run(self):cpu_info_old = {}while True:if not cpu_info_old:cpu_info_old = self.read_cpu()time.sleep(self.watch_time_step_)cpu_info = self.read_cpu()result = self.get_avg_cpu(cpu_info_old, cpu_info)cpu_info_old = copy.deepcopy(cpu_info)if __name__ == '__main__':cpu_watcher = CpuWatch(time_step = 5)cpu_watcher.run()

脚本可以直接在 我的github 进行下载。

其他

欢迎关注下我的其他脚本,平常可能会用到的一些脚本,整理了一下。

https://github.com/smaugx/dailytools

Blog:

  • rebootcat.com

  • email: linuxcode2niki@gmail.com

2018-05-20 于杭州
By 史矛革

python采集cpu信息相关推荐

  1. linux多cpu运行python脚本,linux系统使用python获取cpu信息脚本分享

    linux系统使用python获取cpu信息脚本分享 代码如下: #!/usr/bin/env Python from __future__ import print_function from co ...

  2. 【Python项目】用Python采集球员信息,成功预测到了世界杯球赛胜负?

    前言 halo,包子们上午好 世界杯都买了吧,球赛反着买,别墅靠大海 用Python采集球员信息,成功预测到了世界杯球赛胜负? 废话不多说,直接开整 相关文件 关注小编,私信小编领取哟! 当然别忘了一 ...

  3. python采集bandwidth信息

    旧博文,搬到 csdn 原文:http://rebootcat.com/2018/05/21/analyze_bandwidth/ python脚本采集bandwidth 经常要做一些 linux 系 ...

  4. 用Python采集球员信息,成功预测到了球赛胜负?

    前言 嗨嗨,最近看球赛的朋友多吗 emm怎么说,我对这个虽然兴趣不是很大 但是还是想跟朋友赌赌,自己对这些球员也不是很熟悉,索性叫我的好同事帮我用Python采集了各国球员的一些信息,没料到竟预测成功 ...

  5. 用python采集球员信息,成功预测到球赛胜负?

    哈喽,最近看球赛的朋友多吗 虽然我不看球赛,也不d⚽️ 看到身边的人都在赌d,还挺有意思的,我也想试试,但是自己对这些球员也不是很熟悉,索性叫我的好同事帮我用Python采集了各国球员的一些信息,没料 ...

  6. 如何在电脑中使用python_教你怎么在windows上用python获得CPU信息

    安装完wmi之后,其实我们还需要安装一个pywin32扩展,如果没有自行到sourceforge下载,百度pywin32即可找到. 可写成代码如下: #-*- coding:utf-8 -*- #使用 ...

  7. python采集银行信息_Python:将银行扣费信息整理成账单

    全文以工商银行的扣费信息为例 工行储蓄卡,绑定支付宝.微信后日常使用,偶尔会转入,日常收到的通知短信有支付.转入.信使展期扣费三类: 1. 您尾号1234卡1月2日20:57POS支出(快捷支付)10 ...

  8. 【Python实战】Python采集高校信息

    前言 大家好,我们今天来爬取某站的高校名单,把其高校名单,成员和内容数获取下来,不过,我们发现这个网站比我们平时多了一个验证,下面看看我是怎么解决的. 环境使用 python 3.9 pycharm ...

  9. linux生成火焰图,一键采集cpu生成火焰图

    cpu 性能分析 CPU 性能分析工具很多,我常用的工具是 perf 工具. perf perf 是 Linux 上的一款性能分析工具,可以对 on-cpu.off-cpu.memory 等进行采集分 ...

最新文章

  1. 从面试官的角度谈谈大数据面试
  2. 如何给网站瘦身?图文并茂的前端性能优化指南
  3. swift调用支付宝
  4. 计算机考试word教程,职称计算机考试Word教程:段落格式的编辑
  5. Android工程的编译过程
  6. find_first_of()和 find_last_of() 【获取路径、文件名】
  7. python中的常量可以修改吗_深入理解Python变量与常量
  8. 2014校招 百度试题及答案
  9. 使用VScode + PicGo 写markdown 以及github图片加载不出的问题
  10. Codeforces 719B Anatoly and Cockroaches(元素的交叉排列问题)
  11. android系统源代码单独编译应用程序
  12. 大O记法-BigO notation
  13. 部分主流视频网站下载方法
  14. 中国连锁药店行业发展机遇与竞争格局分析报告2022-2028年版
  15. maya拆完uv,画好贴图后导入,模型上贴图显示混乱
  16. 卡西欧计算器——三角函数的角度模式与弧度模式的切换
  17. Linux--如何解压分卷压缩的文件(zip,tar等等)
  18. APP自动化测试框架----启动APP(java)
  19. 实战:JS批量打包下载图片--(zip压缩)
  20. CAD中如何给文本自动编号呢?

热门文章

  1. wdcp php5.3 pdo_mysql,WDCP常用组件(memcache、mysqli、PDO_MYSQL、mysql innodb、libmcrypt、php zip)的安装方法...
  2. vs连接mysql建一个表并增删查改_VS连接SQL Server数据库,增删改查详细教程(C#代码)...
  3. Open3D点云处理算法最全合集
  4. 使用Python,OpenCV构建透明的叠加层
  5. 使用Protobuf文件一键生成Java类
  6. Java gdal .mif/.mid文件读取
  7. 随笔:送给初次使用PCL库的小伙伴
  8. Matlab频域高/低通滤波
  9. Matlab实现直方图均衡化(基于自定义函数)
  10. android 音频增益_参考级音频播放器!七彩虹发布Pocket HIFI U6:4999亲民价