首页 > 其他分享 >fio磁盘压测工具

fio磁盘压测工具

时间:2023-10-20 12:32:17浏览次数:37  
标签:libaio group th io 压测 IO 磁盘 fio

内容要点:

一、fio安装

二、fio使用

三、fio结果分析

一、fio安装

1、下载

wget https://brick.kernel.dk/snaps/fio-2.1.10.tar.gz

2、安装相关软件包

yum install -y libaio libaio-devel

3、解压

tar -xzvf fio-2.1.10.tar.gz -C /usr/local/      
cd /usr/local/fio-2.1.10

4、编译安装

./configure
make
make install

fio磁盘压测工具_Test

二、fio使用

1、fio参数解释

direct,表示是否跳过系统缓存。设置的 1 ,就表示跳过系统缓存。

iodepth,表示使用异步 I/O(asynchronous I/O,简称 AIO)时,同时发出的 I/O 请求上限。在上面的示例中,我设置的是 64。

rw,表示 I/O 模式。我的示例中, read/write 分别表示顺序读 / 写,而 randread/randwrite 则分别表示随机读 / 写。

ioengine,表示 I/O 引擎,它支持同步(sync)、异步(libaio)、内存映射(mmap)、网络(net)等各种 I/O 引擎。上面示例中,我设置的 libaio 表示使用异步 I/O。

bs,表示 I/O 的大小。示例中,我设置成了 4K(这也是默认值)。

filename,表示文件路径,当然,它可以是磁盘路径(测试磁盘性能),也可以是文件路径(测试文件系统性能)。示例中,我把它设置成了磁盘 /dev/sdb。不过注意,用磁盘路径测试写,会破坏这个磁盘中的文件系统,所以在使用前,你一定要事先做好数据备份。

2、案例

测试随机写IOPS:
fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=5G -numjobs=1 -runtime=600 -group_reporting -filename=/ssd/fiotest.txt -name=Rand_Write_IOPS_Test
测试随机读IOPS:
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=5G -numjobs=1 -runtime=600 -group_reporting -filename=/ssd/fiotest.txt -name=Rand_Read_IOPS_Test
测试写吞吐量:
fio -direct=1 -iodepth=32 -rw=write -ioengine=libaio -bs=1024k -size=5G -numjobs=1 -runtime=600 -group_reporting -filename=/ssd/fiotest2.txt -name=Write_BandWidth_Test
测试读吞吐量:
fio -direct=1 -iodepth=32 -rw=read -ioengine=libaio -bs=1024k -size=5G -numjobs=1 -runtime=600 -group_reporting -filename=/ssd/fiotest2.txt -name=Read_BandWidth_Test

fio磁盘压测工具_Test_02

三、fio结果分析

  read : io=717120KB, bw=23915KB/s, iops=5978, runt= 29986msec
  #这一行表示读
  #io表示执行了多少M的io,bw表示平均io带宽,iops表示每秒的输入输出量,runt表示线程运行时间
  clat (usec): min=162, max=17094, avg=1178.92, stdev=701.84
     lat (usec): min=162, max=17094, avg=1179.36, stdev=702.21
    clat percentiles (usec):
     |  1.00th=[  338],  5.00th=[  462], 10.00th=[  556], 20.00th=[  692],
     | 30.00th=[  804], 40.00th=[  908], 50.00th=[ 1012], 60.00th=[ 1144],
     | 70.00th=[ 1304], 80.00th=[ 1528], 90.00th=[ 1960], 95.00th=[ 2384],
     | 99.00th=[ 3824], 99.50th=[ 4576], 99.90th=[ 6560], 99.95th=[ 7584],
     | 99.99th=[ 9920]
   #io延迟包括三种:slat,clat,lat,关系是lat=slat+clat;
   #slat表示fio submit某个I/O的延迟,称slat为提交延迟;
   #clat表示fio complete某个I/O的延迟,称clat为提交延迟;
   #lat表示从fio将请求提交给内核,再到内核完成这个I/O为止所需的相应时间,称lat为响应时间;
   #usec:微妙,msec:毫秒
    cpu          : usr=0.17%, sys=27.06%, ctx=263958, majf=0, minf=10
    #usr表示用户空间进程;
    #sys表示内核空间进程;

参数解释:

bw=带宽
cpu=利用率
IO depths=io队列
IO submit=单个IO提交要提交的IO数
IO complete=Like the above submit number, but for completions instead.
IO issued=The number of read/write requests issued, and how many of them were short.
IO latencies=IO完延迟的分布

io=总共执行了多少size的IO
aggrb=group总带宽
minb=最小平均带宽.
maxb=最大平均带宽.
mint=group中线程的最短运行时间.
maxt=group中线程的最长运行时间.

ios=所有group总共执行的IO数.
merge=总共发生的IO合并数.
ticks=Number of ticks we kept the disk busy.
io_queue=花费在队列上的总共时间.
util=磁盘利用率
————————————————
版权声明:本文为CSDN博主「MssGuo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/MssGuo/article/details/121894344

四、补充:

使用fio进行磁盘I/O测试,认识一些概念性的名称:

IOPS (Input/Output Per Second):指单位时间内系统能处理的I/O请求数量,即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。

数据吞吐量(Throughput):指单位时间内可以成功传输的数据数量。

标签:libaio,group,th,io,压测,IO,磁盘,fio
From: https://blog.51cto.com/u_14475876/7949232

相关文章

  • jmeter分布式压测配置
    环境:主机是windows系统方便图形界面使用从机是虚拟机上的centos7操作系统主从版本一致:jmeter.5.6.2 检测cpu和内存:插件配置详见==>插件配置主机配置:有就配置,没有就添加:server.rmi.ssl.disable=trueremote_hosts=127.0.0.1,192.168.12.127192.168.12.127是从机ip,如果......
  • Oracle集群升级迁移—老集群磁盘切割
    目录Oracle升级迁移剔除磁盘腾出存储LUNGRID用户登录,查询ASM磁盘剔除磁盘Oracle升级迁移目前有两套Oracle采用ADG+RAC架构,其中备库使用的为SUSE12.4目前已EOS,文件系统BFTFS与Oracle兼容性据说也有一定的问题,决定对现有的集群进行升级,升级后服务器统一采用SUSE12.5+EXT4文件系......
  • 分享一个Redis自带的压测工具:redis-benchmark
    前言今天给xdm分享一个Redis自带的压测工具:redis-benchmark。介绍redis-benchmark是一个用于测试Redis性能的基准测试工具,可以帮助开发人员评估和比较Redis在不同配置或负载情况下的吞吐量和延迟。使用redis-benchmark可以执行多种类型的基准测试,例如:SET/GET操作测......
  • centos8使用df命令查看磁盘占用,数据刷新不及时
    磁盘要用完了,在清理数据。清理过程中,用df查看磁盘占用情况。发现df的结果有延迟。大概几分钟,10分钟以内。 [root@10-100-0-18~]#dfFilesystem1K-blocksUsedAvailableUse%Mountedondevtmpfs8073048080730480%/devtmpfs......
  • 接口性能测试 —— Jmeter并发与持续性压测
    接口压测的方式:1、同时并发:设置线程组、执行时间、循环次数,这种方式可以控制接口请求的次数2、持续压测:设置线程组、循环次数,勾选“永远”,调度器(持续时间),这种方式可以控制压测周期时间指定并发数例1:设置线程数:10设置执行时间:0设置循环次数:5说明:使10个线程启动并同时运行也就......
  • win11清理磁盘空间方法
    win11清理磁盘空间的方法:1、首先,按键盘上的Win键,或点击任务栏上的开始菜单,再选择已固定应用下的设置。2、当前路径为:系统》存储,可以看到各部分空间的占用情况,存储管理下,可以将存储感知(自动释放空间,删除临时文件,并管理本地可用的云内容)打开。3、......
  • 磁盘调度算法
            ......
  • RAID磁盘阵列是什么​
    在单机时代,采用单块磁盘进行数据存储和读写的方式,由于寻址和读写的时间消耗,导致I/O性能非常低,且存储容量还会受到限制。另外,单块磁盘极其容易出现物理故障,经常导致数据的丢失。因此大家就在想,有没有一种办法将多块独立的磁盘结合在一起组成一个技术方案,来提高数据的可靠性和I/O性能......
  • Linux系统稳定性压测工具-Stress安装及使用(转)
    在线安装:执行命令yuminstall-yepel-release&&yuminstallstress-y离线安装:一、stress工具下载:点击此处下载https://fossies.org/linux/privat/stress-1.0.4.tar.gz 二、上传stress包登录要安装的服务器,将stress-1.0.4.tar.gz上传到服务器,解压安装此处以实际工......
  • postman导入请求到jmeter进行简单压测,开发同学一学就会
    背景这个事情也是最近做的,因为线上nginx被我换成了openresty,然后接入层服务也做了较大改动,虽然我们这个app(内部办公类)并发不算高,但好歹还是压测一下,上线时心里也稳一点。于是用jmeter简单压测下看看,这里记录一下。这次也就找了几个接口来压:登录接口、登录后获取用户信息接口、......