python采集cpu信息
旧博文,搬到 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信息相关推荐
- linux多cpu运行python脚本,linux系统使用python获取cpu信息脚本分享
linux系统使用python获取cpu信息脚本分享 代码如下: #!/usr/bin/env Python from __future__ import print_function from co ...
- 【Python项目】用Python采集球员信息,成功预测到了世界杯球赛胜负?
前言 halo,包子们上午好 世界杯都买了吧,球赛反着买,别墅靠大海 用Python采集球员信息,成功预测到了世界杯球赛胜负? 废话不多说,直接开整 相关文件 关注小编,私信小编领取哟! 当然别忘了一 ...
- python采集bandwidth信息
旧博文,搬到 csdn 原文:http://rebootcat.com/2018/05/21/analyze_bandwidth/ python脚本采集bandwidth 经常要做一些 linux 系 ...
- 用Python采集球员信息,成功预测到了球赛胜负?
前言 嗨嗨,最近看球赛的朋友多吗 emm怎么说,我对这个虽然兴趣不是很大 但是还是想跟朋友赌赌,自己对这些球员也不是很熟悉,索性叫我的好同事帮我用Python采集了各国球员的一些信息,没料到竟预测成功 ...
- 用python采集球员信息,成功预测到球赛胜负?
哈喽,最近看球赛的朋友多吗 虽然我不看球赛,也不d⚽️ 看到身边的人都在赌d,还挺有意思的,我也想试试,但是自己对这些球员也不是很熟悉,索性叫我的好同事帮我用Python采集了各国球员的一些信息,没料 ...
- 如何在电脑中使用python_教你怎么在windows上用python获得CPU信息
安装完wmi之后,其实我们还需要安装一个pywin32扩展,如果没有自行到sourceforge下载,百度pywin32即可找到. 可写成代码如下: #-*- coding:utf-8 -*- #使用 ...
- python采集银行信息_Python:将银行扣费信息整理成账单
全文以工商银行的扣费信息为例 工行储蓄卡,绑定支付宝.微信后日常使用,偶尔会转入,日常收到的通知短信有支付.转入.信使展期扣费三类: 1. 您尾号1234卡1月2日20:57POS支出(快捷支付)10 ...
- 【Python实战】Python采集高校信息
前言 大家好,我们今天来爬取某站的高校名单,把其高校名单,成员和内容数获取下来,不过,我们发现这个网站比我们平时多了一个验证,下面看看我是怎么解决的. 环境使用 python 3.9 pycharm ...
- linux生成火焰图,一键采集cpu生成火焰图
cpu 性能分析 CPU 性能分析工具很多,我常用的工具是 perf 工具. perf perf 是 Linux 上的一款性能分析工具,可以对 on-cpu.off-cpu.memory 等进行采集分 ...
最新文章
- 从面试官的角度谈谈大数据面试
- 如何给网站瘦身?图文并茂的前端性能优化指南
- swift调用支付宝
- 计算机考试word教程,职称计算机考试Word教程:段落格式的编辑
- Android工程的编译过程
- find_first_of()和 find_last_of() 【获取路径、文件名】
- python中的常量可以修改吗_深入理解Python变量与常量
- 2014校招 百度试题及答案
- 使用VScode + PicGo 写markdown 以及github图片加载不出的问题
- Codeforces 719B Anatoly and Cockroaches(元素的交叉排列问题)
- android系统源代码单独编译应用程序
- 大O记法-BigO notation
- 部分主流视频网站下载方法
- 中国连锁药店行业发展机遇与竞争格局分析报告2022-2028年版
- maya拆完uv,画好贴图后导入,模型上贴图显示混乱
- 卡西欧计算器——三角函数的角度模式与弧度模式的切换
- Linux--如何解压分卷压缩的文件(zip,tar等等)
- APP自动化测试框架----启动APP(java)
- 实战:JS批量打包下载图片--(zip压缩)
- CAD中如何给文本自动编号呢?
热门文章
- wdcp php5.3 pdo_mysql,WDCP常用组件(memcache、mysqli、PDO_MYSQL、mysql innodb、libmcrypt、php zip)的安装方法...
- vs连接mysql建一个表并增删查改_VS连接SQL Server数据库,增删改查详细教程(C#代码)...
- Open3D点云处理算法最全合集
- 使用Python,OpenCV构建透明的叠加层
- 使用Protobuf文件一键生成Java类
- Java gdal .mif/.mid文件读取
- 随笔:送给初次使用PCL库的小伙伴
- Matlab频域高/低通滤波
- Matlab实现直方图均衡化(基于自定义函数)
- android 音频增益_参考级音频播放器!七彩虹发布Pocket HIFI U6:4999亲民价