fio iops等性能数据统计并简单制图

文章介绍了如何使用fio工具进行磁盘性能测试,特别是IOPS的测量。测试后,通过解析生成的日志文件xx.txt_iops.1.log,利用Python脚本提取数据并绘制了读写IOPS的折线图,最终保存为fio_test.png图像。
摘要由CSDN通过智能技术生成

fio 结果画图:
首先使用fio命令进行测试,并收集每秒的IOPS等数据资料:

fio --name=test --filename=/dev/nvme0n1 --ioengine=libaio --direct=1 --rw=rw --bs=128k --runtime=300 --iodepth=128 --numjobs=1 --group_reporting --write_iops_log=xx.txt --log_avg_msec=1000 --time_based
#“–filename”: 指定要进行IO测试的文件或设备的名称。
#“–direct=1”: 启用直接IO,绕过操作系统的缓存。
#“–rw=rw”:以读/写混合样式运行测试。
#“–bs=128k”: 每个IO操作的块大小为128 KB。
#“–runtime=300”: 测试的总运行时间为300秒(5分钟)。
#“–iodepth=128”: 使用每个线程/作业的最大I/O深度为128。
#“–numjobs=1”: 使用单线程/作业运行测试。
#“–log_avg_msec=1000”: 指定在日志文件中记录平均值和标准差的时间间隔为1000毫秒(1秒)。
#“–time_based”: 启用时间模式,因此fio将尝试运行指定的秒数,无论是否已完成所有请求。
#“--group_reporting”:启用分组报告模式,收集所有线程的测试数据
#“--write_iops_log”:存储IOPS数据
#“--log_avg_msec=1000”:每一秒记录一次IOPS数据

在这样的情况下,测试结束后会生成一份xx.txt_iops.1.log的文件,里面的内容结构如下:

1000, 21543, 0, 0
1000, 21455, 1, 0
2000, 23251, 0, 0
2000, 22988, 1, 0
3000, 23200, 0, 0
3000, 23136, 1, 0
4000, 22670, 0, 0
4000, 22742, 1, 0
.....

对于这样结构的资料,我们再使用python脚本进行解析,准备工作:

#安装库文件
pip3 install matplotlib

库安装好以后,脚本如下:

import matplotlib.pyplot as plt

#打开xx.txt_iops.log,读取内容
with open('xx.txt_iops.1.log', 'r') as f:
    lines = f.readlines()

# 抽出第三列为1的数据
x1 = []
for line in lines:
    if line.split(",")[2] == " 1":
        items = line.strip().split(',')
        x1.append(int(items[1]))

# 抽出第三列为0的数据
x2 = []
for line in lines:
    if line.split(",")[2] == " 0":
        items = line.strip().split(',')
        x2.append(int(items[1]))

# 绘制折线图
#修改折线的颜色 color=()
#例如 'red'、'blue'、'green'等),也可以将其设置为一个RGB元组(例如 (1, 0, 0) 表示红色、(0, 1, 0) 表示绿色、(0, 0, 1) 表示蓝色、(1, 1, 0) 表示黄色、(0.5,0.5,0.5)表示灰色等)
#marker='o',将数据标点
#linestyle='' ,每个数据点之间取消线段连接,这两个都设定,代表默认折线图变成点图
plt.plot(x1, label='Write IOPS',color='red',marker='o',linestyle='')
plt.plot(x2, label='Read IOPS',color=(0,1,0))

# 添加图例显示
plt.legend()

# 添加坐标轴标签
plt.xlabel('time')
plt.ylabel('iops')

# 添加标题
plt.title('R/W IOPS')

# 保存图形
plt.savefig("fio_test.png")

# 显示图形
plt.show()

效果图示如下:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值