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 va
    csvFile = 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 = 0
    for 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 va
    va = 1
    #上文提到的一个类,实例化它
    myclass = saveFio()
    #将处理过的数据返回并赋值,readData与writeData都是字典类型的
    readData,writeData = myclass.run()
    #调用本文的函数进行处理,将结果写到csv档案中
    writeToCSV(readData,"read")
    writeToCSV(writeData,"write")

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/118431.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CBAM:Convolutional Block Attention Module

CBAM(Convolutional Block Attention Module)是一种深度学习领域的注意力机制,旨在增强卷积神经网络对图像特征的建模和表示能力。CBAM引入了通道和空间两种不同的注意力机制,使模型能够动态调整特征图的权重,以适应不…

MVC、MVP、MVVM区别

MVC、MVP、MVVM区别 MVC(Model-View-Controller) 。是一种设计模式,通常用于组织与应用程序的数据流。它通常包括三个组件:模型(Model)、视图(View)和控制器(Controller&…

sql中的加减乘除

自学SQL网(教程 视频 练习全套)

[vmware]vmware虚拟机压缩空间清理空间

vmware中的ubuntu使用如果拷贝文件进去在删除,vmare镜像文件并不会减少日积月累会不断是的真实物理磁盘空间大幅度减少,比如我以前windows操作系统本来只有30GB最后居然占道硬盘200GB,清理方法有2种。 第一种:vmware界面操作 第二…

阿里云服务器省钱购买和使用方法(图文详解)

阿里云服务器使用教程包括云服务器购买、云服务器配置选择、云服务器开通端口号、搭建网站所需Web环境、安装网站程序、域名解析到云服务器公网IP地址,最后网站上线全流程,新手站长xinshouzhanzhang.com分享阿里云服务器详细使用教程: 一&am…

数学建模比赛中常用的建模提示词(数模prompt)

以下为数学建模比赛中常用的建模提示词,希望对你有所帮助! 帮我总结一下数学建模有哪些预测类算法? 灰色预测模型级比检验是什么意思? 描述一下BP神经网络算法的建模步骤 对于分类变量与分类变量相关性分析用什么算法 前10年的数据分别是1&a…

从传统货架到智能货架电子标签PTL仓储亮灯系统的革新

在现代物流仓储行业中,仓库的管理和物料的寻找一直是一个难题。仓库内物料数量种类繁多,寻找物料耗时长、困难大,盘点更是耗费人力多、成本高、速度慢。此外,货物存储位置不清晰,经常性找不到物料。多发、少发、错料现…

centos7安装oxidized备份软件

首先需要提前下载ruby,因为默认yum安装的版本太低 https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0.tar.gz 1、yum remove ruby ruby-devel(有就卸载,没有则忽略) 2、将下载好的ruby包解压到/opt下 [rootoxidized ruby-…

【广州华锐互动】VR历史古城复原:沉浸式体验古代建筑,感受千年风华!

在科技日新月异的今天,虚拟现实(VR)技术已经成为了我们生活中不可或缺的一部分。从娱乐游戏到医疗健康,从教育培训到房地产销售,VR技术的应用领域日益广泛。而近年来,VR技术在文化遗产保护和古迹复原方面的…

阿里云安全恶意程序检测(速通一)

阿里云安全恶意程序检测 赛题理解赛题介绍赛题说明数据说明评测指标 赛题分析数据特征解题思路 数据探索数据特征类型数据分布箱型图 变量取值分布缺失值异常值分析训练集的tid特征标签分布测试集数据探索同上 数据集联合分析file_id分析API分析 特征工程与基线模型构造特征与特…

【stack题解】最小栈 | 栈的压入、弹出序列

目录 最小栈 思路 ​编辑 实现 栈的压入、弹出序列 思路 实现 需要注意的 最小栈 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。…

​软考-高级-信息系统项目管理师教程 第四版【第15章-项目风险管理-思维导图】​

软考-高级-信息系统项目管理师教程 第四版【第15章-项目风险管理-思维导图】 课本里章节里所有蓝色字体的思维导图

K8s学习笔记——资源组件篇

引言 前一篇文章我们介绍了K8s的概念理解和常用命令,这篇我们重点介绍K8s的资源组件和相关配置使用。 1. Node & Pod Node: 是 Pod 真正运行的主机,可以是物理机,也可以是虚拟机。为了管理 Pod,每个 Node 节点上至少要运行…

军用机场信息化数字孪生监测平台助力企业运营

随着直升机的不断发展,其在军用和民用领域得到越来越广泛的应用,在民用领域直升机广泛用于客货运输、紧急救援、农林作业、地质勘探、油气开发、公安巡逻等。直升机相关经营数据也逐渐被重视起来,数字孪生公司深圳华锐视点通过web3d开发构建虚…

XR Interaction ToolKit

一、简介 XR Interaction Toolkit是unity官方的XR交互工具包。 官方XRI示例地址:https://github.com/Unity-Technologies/XR-Interaction-Toolkit-Examples 2023.3.14官方博客,XRIT v2.3 https://blog.unity.com/engine-platform/whats-new-in-xr-int…

8-3、T型加减速单片机程序【51单片机控制步进电机-TB6600系列】

摘要:根据前两节内容,已完成所有计算工作,本节内容介绍具体单片机程序流程及代码 一、程序流程图 根据前两节文章内容可知,T型加减速的关键内容是运动类型的判断以及定时器初值的计算,在输出运动参数后即可判断出运动…

新闻稿的写作注意事项!纯干货

新闻稿是企业、机构、政府等组织向公众传递信息的重要途径之一,也是媒体获取新闻素材的主要来源。一篇优质的新聞稿不仅可以吸引读者的注意力,还可以提高组织的形象和声誉。因此写好新闻稿至关重要。下面伯乐网络传媒来给大家探讨一些新闻稿写作的注意事…

人工智能AI 全栈体系(十二)

第二章 计算机是如何学会下棋的 下棋一直被认为是人类的高智商游戏,从人工智能诞生的那一天开始,研究者就开始研究计算机如何下棋。著名人工智能学者、图灵奖获得者约翰麦卡锡在 50 年代就开始从事计算机下棋方面的研究工作,并提出了著名的 …

如何使用Node.js快速创建HTTP服务器并实现公网访问本地Server

文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址 前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff0…