【磁盘性能测试】

1、前言

  • 磁盘性能测试旨在对磁盘各个性能指标的量化性测试,测试场景分为磁盘自身性能测试和业务背景下的磁盘性能测试,依上两种情况,本文章使用fio和iostat工具做相关测试工作(fio和iostat工具介绍在这就不过多概述)。

2、磁盘自身性能测试

2.1 IOPS

  • IOPS(每秒输入/输出操作数)是衡量磁盘处理IO数量的能力,可以理解水管管壁的制造特性对水的阻力。较大的 --iodepth= 值通常会增加系统对磁盘的负载,因为同时有更多的 I/O 操作正在执行。这可能会提高测试的性能结果,因为并发操作可以更好地利用磁盘的性能潜力。然而,需要注意的是,过大的 --iodepth= 值可能会导致系统负载过高,影响其他进程的性能。较小的 --iodepth= 值可能会减少系统对磁盘的负载,但同时也可能限制系统利用磁盘的性能。在实际测试中,可以尝试不同的 --iodepth= 值,以找到最适合你的系统和需求的设置,从而获得准确的性能测试结果。

  • 测试

    fio --name=random_rw  --rw=randrw --bs=4k --iodepth=128 --numjobs=1 --size=1G --runtime=30s --direct=1 --time_based --end_fsync=1 
    --iodepth参数是主要衡量磁盘处理io能力的参数
    --direct=1参数是绕过buffer直接操作磁盘,测试数据更准确
    --bs=4k设置小IO,把测试瓶颈关注在处理IO能力上
    --numjobs=1配置的进程数,--iodepth只是io队列的长度不是操作系统的并发进程
    --time_based基于时间测试,本示例会跑完30S
    --end_fsync=1最后把数据数据刷进磁盘
    

    在这里插入图片描述
    在这里插入图片描述

2.2 顺序读/写

  • 磁盘顺序读写是衡量磁盘带宽的指标,可以理解水管的口径大小

  • 测试

    fio --name=seq_read_write --ioengine=libaio --rw=readwrite --bs=1M --iodepth=64 --numjobs=1 --size=1G --runtime=30s --time_based --direct=1 --end_fsync=1
    这儿可以通过修改--bs的参数来测试磁盘性能情况
    

    在这里插入图片描述
    只测试读的话会高一些,可以理解单个通道跑回来和只跑一面的流量的区别

fio --name=seq_read_write --ioengine=libaio --rw=read --bs=1M --iodepth=64 --numjobs=1 --size=1G --runtime=30s --time_based --direct=1 --end_fsync=1

在这里插入图片描述

2.3 随机读/写

  • 磁盘随机读写是衡量磁盘带宽的指标,可以理解水管的口径大小
  • 这儿只需要将2.2章节参数的–rw=read改成–rw=randread或者–rw=randrw即可

2.4 时延

  • 时延是磁盘处理完单次IO的时间,是衡量磁盘响应速度的指标

  • 测试

    fio --name=latency_test  --rw=randread --bs=4k --iodepth=1 --numjobs=1 --size=1G --runtime=30s --time_based --direct=1 --end_fsync=1
    这里注意--iodepth=1和--numjobs=1这两个参数,表示一个进程里跑一个io,测试数据更直观准确
    lat是指从发出一个 I/O 请求到完成该请求所花费的时间,即完成一次 I/O 操作所需的时间,单位是ms
    

在这里插入图片描述

3、业务背景下的磁盘性能

  • 业务背景下的磁盘性能测试可根据文章第二个章节的测试命令根据需要调整参数,以下我列举IOPS和随机写的测试样例

3.1 IOPS

iostat -dx 2
-d 显示磁盘信息
-x 显示扩展信息
2 每两秒刷新一次
svctm 参数是查看单个io的平均时延
r/s和w/s表示每秒读写io数量,两数相加即为总IOPS
%util表示CPU负载情况
需要注意的是iostat显示的第一条数据是系统自开机以来的平均数据,需要从第二条查看实时数据

在这里插入图片描述

3.2 随机写

在这里插入图片描述
这里的rkB/s和wkB/s表示磁盘读写的带宽

这里iostat回显的最后两条是dm-0,dm-1是lvm卷,可以通过"dmsetup ls"命令查看映射关系
在这里插入图片描述

4、磁盘调优思路

4.1 软件raid(mdadm工具)

  • 这种通过软件将操作系统上多个磁盘分区组合成阵列的方式可以有效提高IOPS,但是没有实际提高IO时延

4.2 硬件raid

  • 这种方式跟软件raid的方式相似,但是硬件raid的可靠性和性能是优于软件raid的

4.3 更换磁盘类型

  • 比如把SATA盘更换成SAS盘或者SSD盘,这个是比较根本解决磁盘性能的方案

4.4 网络环境优化

  • 在真实企业的IT环境中,一般会建有IDC机房或者云上环境,对于IDC机房可以排查网络性能在带宽或者网络策略上是否有限制,如果是云上环境可以购买高带宽或者性能更高的网络服务保障业务网络
  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值