Python测试进阶——(4)Python程序监控、存储、分析并可视化CPU和内存利用率
monitor190617.py 监控cpu和内存利用率信息,组织成json格式,并写入到 record.txt 文件中:
- import psutil
- import time
- import json
- a = {}
- flag=1
- f = open('record.txt', 'a')
- f.truncate()
- while flag < 10:
- b = {}
- b['cpu'] = psutil.cpu_percent(1)
- b['memory'] = psutil.virtual_memory().percent
- a[time.strftime("%H:%M:%S", time.localtime())] = b.copy()
- #print(a)
- #print(json.dumps(a))
- flag += 1
- time.sleep(4)
- #json.dump(a,f)
- f.write(json.dumps(a))
- f.close()
record.txt 的文件内容为:
- {"11:39:57": {"cpu": 12.5, "memory": 49.7}, "11:40:02": {"cpu": 18.6, "memory": 49.6}, "11:40:07": {"cpu": 11.8, "memory": 49.5}, "11:40:12": {"cpu": 10.7, "memory": 49.5}, "11:40:17": {"cpu": 12.4, "memory": 49.3}, "11:40:22": {"cpu": 12.9, "memory": 49.2}, "11:40:27": {"cpu": 6.1, "memory": 49.0}, "11:40:32": {"cpu": 19.4, "memory": 48.7}, "11:40:37": {"cpu": 16.9, "memory": 49.3}}
编写 show190617.py ,读取 record.txt 的文件内容,做统计分析,并将分析结果可视化为图表:
- import json
- import pandas as pd
- import matplotlib.pyplot as plt
- with open('record.txt','rb') as f:
- a = json.loads(f.read())
- #print('load 并赋值给a后的数据类型:',type(a))
- #print(a)
- #print(a)
- #print('*' * 50)
- time = []
- cpu = []
- mem = []
- for key in a.items():
- #print(key)
- #print('key的数据类型:',type(key))
- time.append(key[0])
- #print(key[1])
- #print('key[1]的数据类型:',type(key[1]))
- cpu.append(key[1]['cpu'])
- mem.append(key[1]['memory'])
- print(time)
- print(cpu)
- print(mem)
- s_cpu = pd.Series(cpu)
- s_mem = pd.Series(mem)
- cpu_mean = s_cpu.mean()
- mem_mean = s_mem.mean()
- print('cpu利用率平均值是:%f' % cpu_mean)
- print('内存利用率平均值是:%f' % mem_mean)
- plt.plot(time,cpu, c='r')
- plt.plot(time,mem, c='b')
- plt.show()
返回信息:
- ['11:39:57', '11:40:02', '11:40:07', '11:40:12', '11:40:17', '11:40:22', '11:40:27', '11:40:32', '11:40:37']
- [12.5, 18.6, 11.8, 10.7, 12.4, 12.9, 6.1, 19.4, 16.9]
- [49.7, 49.6, 49.5, 49.5, 49.3, 49.2, 49.0, 48.7, 49.3]
- cpu利用率平均值是:13.477778
- 内存利用率平均值是:49.311111
并显示图表:
参考:
https://www.cnblogs.com/luotianshuai/p/5002110.html
https://www.runoob.com/python/python-dictionary.html
https://www.runoob.com/python/python-tuples.html
https://www.cnblogs.com/onemorepoint/p/7482644.html
https://blog.csdn.net/lambsnow/article/details/78517340
https://www.cnblogs.com/haiyan123/p/8377636.html
https://www.cnblogs.com/fat39/p/7159881.html
Python测试进阶——(4)Python程序监控、存储、分析并可视化CPU和内存利用率的更多相关文章
- Python测试进阶——(5)Python程序监控指定进程的CPU和内存利用率
用Python写了个简单的监控进程的脚本monitor190620.py,记录进程的CPU利用率和内存利用率到文件pid.csv中,分析进程运行数据用图表展示. 脚本的工作原理是这样的:脚本读取配置文 ...
- Python测试进阶——(3)编写Python程序监控计算机的服务是否正常运行
用python写了个简单的监控进程的脚本,当发现进程消失的时候,立即调用服务,开启服务. 脚本的工作原理是这样的:脚本读取配置文件,读取预先配置好的调用系统服务的路径和所要监控的服务在进程管理器中的进 ...
- Python高级进阶(一)Python框架之Django入门
传说中的Django Django由来 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的框架模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下 ...
- Python编程进阶,Python如何实现多进程?
进程part1 一.进程介绍 1.获取子父进程 2.进程的基本使用 2.创建带有参数的进程 3.进程之间的数据彼此隔离 4.多个进程之间的异步并发 二.join 1.基本语法 2.使用自定义类的方法创 ...
- Python测试进阶——(6)Bash脚本启动Python监控程序并传递PID
用HiBench执行Hadoop——Sort测试用例,进入 /HiBench-master/bin/workloads/micro/sort/hadoop 目录下,执行命令: [root@node1 ...
- Python测试进阶——(1)安装Python测试相关模块
安装python 安装pip yum -y install epel-release yum -y install python-pip 安装psutil 参考:https://www.cnblogs ...
- Python测试进阶——(7)动手编写Bash脚本启动Python监控程序并传递PID
如下: #./cf_workload_functions.sh function timestamp(){ # get current timestamp sec=`date +%s` nanosec ...
- Python测试进阶——(2)配置PyCharm远程调试环境
新建一个Python项目 配置Deployment,用于本地文件和远程文件的同步,在pycharm的菜单栏依次找到:Tools > Deployment > Configuration 点 ...
- Python高级进阶(二)Python框架之Django写图书管理系统(LMS)
正式写项目准备前的工作 Django是一个Web框架,我们使用它就是因为它能够把前后端解耦合而且能够与数据库建立ORM,这样,一个Python开发工程师只需要干自己开发的事情就可以了,而在使用之前就我 ...
随机推荐
- http协议学习 —— post请求方法提交application/x-www-form-urlencoded类型的数据格式
先推荐一篇很不错的文章:https://imququ.com/post/four-ways-to-post-data-in-http.html 说一下,如果是自己编写底层,那么要注意了,不能只有提交数 ...
- PIP安装模块下载慢或者无法下载
pip下载不动,模块安装失败 由于pip默认的下载源在国外,下载的人也多,难免有时会抽风,下载慢还能熬一熬,有时候就直接安装失败了. 安装gevent模块的的时候,进度条慢悠悠的到达100%,以为马上 ...
- SpringBoot与Jpa入门
一.JPA简介 目前JPA主要实现由hibernate和openJPA等. Spring Data JPA 是Spring Data 的一个子项目,它通过提供基于JPA的Repository极大了减少 ...
- python面试题手动总结答案锦集
数据类型 字符串 1.列举python中的基本数据类型 数字:int 布尔值:bool 字符串:str 列表:list 元组:tuple 字典:dict 集合:set 然后我们需要了解一些运算符,应为 ...
- selenium 获取table数据
public class Table { /** * @param args */ public static void main(String[] args) { // TODO Auto-gene ...
- SpringData学习笔记一
Spring Data : 介绍: Spring 的一个子项目.用于简化数据库访问,支持NoSQL 和 关系数据存储.其主要目标是使数据库的访问变得方便快捷. SpringData 项目所支持 NoS ...
- IDEA中使用Lombok插件简化实体类的编写
版本:IDEA Community 2019.2.2 流程:安装lombok插件并安装,重启=>在pom文件中加入 <dependency> <groupId>org.p ...
- luogu P2704 炮兵阵地(经典状态压缩DP)
方格有m*n个格子,一共有2^(m+n)种排列,很显然不能使用暴力法,因而选用动态规划求解. 求解DP问题一般有3步,即定义出一个状态 求出状态转移方程 再用算法实现.多数DP题难youguan点在于 ...
- Spark教程——(11)Spark程序local模式执行、cluster模式执行以及Oozie/Hue执行的设置方式
本地执行Spark SQL程序: package com.fc //import common.util.{phoenixConnectMode, timeUtil} import org.apach ...
- 从Uber司机只是合同工看,零工经济将受沉重打击?
Uber自诞生以来,就始终处于漩涡之中--与当地的同类平台斗.创始人出现负面新闻.司机不断抗议--而就在近日"流血上市"后,Uber也没能迎来好时光.反而是股价不断下跌,市值疯狂蒸 ...