fio数据整理之二

2023-11-07 02:28
文章标签 数据 整理 之二 fio

本文主要是介绍fio数据整理之二,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

fio数据简单抓取
上文我们完成了一些fio output数据的简单抓取,本文将针对抓取的数据做进一步的处理,输出到表格之中,方便我们查看,统计结果。

本文先使用最简单的方法创建csv档案
我们现有个基本认知,在csv档案中,默认列用 逗号(,)进行分隔。也就是假如你在Linux下使用shell 命令 echo "1,2" > test.csv ,你用表格软件打开test.csv的话,它是这样的
在这里插入图片描述
OK,所以,已知用逗号隔开字符串,再输出到csv档案中就能得到一个简单的表格,求:如何将我们需要的fio数据再放到表格中?

解:
我先放上上文我们得到的两个字典,也就是本文中readData,writeData = myclass.run() 得到的两个字典(PS:细心的小伙伴应该发现了,相较上文,修改了字典中Key的名字,这里是为了方便后续取值)
readData
{‘IOPS’: ‘527k’, ‘BW’: ‘2158MB/s’, ‘BiW’: ‘2058MiB/s’, ‘clatv’: ‘usec’, ‘clatavg’: ‘180.34’, ‘clatmin’: ‘6’, ‘clatmax’: ‘27758’, ‘qos9’: ‘486’, ‘qos29’: ‘865’, ‘qos39’: ‘1336’}
writeData
{‘IOPS’: ‘527k’, ‘BW’: ‘2158MB/s’, ‘BiW’: ‘2058MiB/s’, ‘clatv’: ‘usec’, ‘clatavg’: ‘58.22’, ‘clatmin’: ‘8’, ‘clatmax’: ‘31750’, ‘qos9’: ‘81’, ‘qos29’: ‘130’, ‘qos39’: ‘206’}

详细代码:

def writeToCSV(data,rwType):global vacsvFile = os.path.join(os.getcwd(),"fioData.csv")#设定一下表格中需要展示的项目,我这里只筛选了四项dataType = ["item","IOPS","BW","clatavg","qos39"]#先创建表头if va == 1:msg = ""for key in dataType:msg += f"{key},\n"with open(csvFile,'w') as f:f.write(msg)va += 1#读取表格中的文件,readlines()会按行列成List格式,即myData的类型是列表with open(csvFile,'r') as f:myData = f.readlines()# n 代表行号n = 0for line in myData:#第一行显示的是 item ,read , write这些标题if n == 0:#利用 replace 替换掉换行符msg = line.replace("\n","%s,\n"%rwType)else:#同样可以用re 来进行替换动作,dataType[n]读到我们要显示的项目名,如IOPS,再用 data["IOPS"]抓到之前字典内对应的数据, +=让msg慢慢完整msg += re.sub("\n",f"{data[dataType[n]]},\n",line)n += 1#把完整的msg数据直接覆盖写进csv档案里面with open(csvFile,'w') as f:f.write(msg)if __name__ == "__main__":#创建一个全局变量用于判断是否需要先写一个头文件,就是列表需要显示的ITEM名之类的global vava = 1#上文提到的一个类,实例化它myclass = saveFio()#将处理过的数据返回并赋值,readData与writeData都是字典类型的readData,writeData = myclass.run()#调用本文的函数进行处理,将结果写到csv档案中writeToCSV(readData,"read")writeToCSV(writeData,"write")

执行完毕后,我们得到一个fioData.csv的档案,打开后的效果是这样的:
在这里插入图片描述

这篇关于fio数据整理之二的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/360625

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键