ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

fio压测

2022-04-25 23:03:34  阅读:212  来源: 互联网

标签:libaio 压测 Testing 测试 bs iodepth fio


简介
FIO工具测试块存储性能,包括IOPS、吞吐量、时延等。

操作
#查询块存储设备是否已经4KiB对齐。
sudo fdisk -lu
返回的结果中,Start值能被8整除即是4KiB对齐。否则,请完成4KiB对齐后再继续性能测试。

#安装libaio和FIO。
yum install libaio -y
yum install libaio-devel -y
yum install fio -y

#压测
注意!!!测试裸盘可以获得真实的块存储盘性能,但会破坏文件系统结构,建议压测文件,不要压测裸盘。

随机写IOPS:
fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_dir -name=Rand_Write_Testing
随机读IOPS:
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_dir -name=Rand_Read_Testing
顺序写吞吐量:
fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_dir -name=Write_PPS_Testing
顺序读吞吐量:
fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=/dev/your_dir -name=Read_PPS_Testing
随机写时延:
fio -direct=1 -iodepth=1 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -group_reporting -filename=/dev/your_dir -name=Rand_Write_Latency_Testing
随机读时延:
fio -direct=1 -iodepth=1 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -group_reporting -filename=/dev/your_dir -name=Rand_Read_Latency_Testing

#参数

参数 说明
-direct=1 表示测试时忽略I/O缓存,数据直写。
-iodepth=128 表示使用异步I/O(AIO)时,同时发出I/O数的上限为128。
-rw=randwrite

表示测试时的读写策略为随机写(random writes)。其它测试可以设置为:

  • randread(随机读random reads)
  • read(顺序读sequential reads)
  • write(顺序写sequential writes)
  • randrw(混合随机读写mixed random reads and writes)
-ioengine=libaio

表示测试方式为libaio(Linux AIO,异步I/O)。应用程序使用I/O通常有两种方式:

  • 同步的I/O一次只能发出一个I/O请求,等待内核完成才返回。这样对于单个线程iodepth总是小于1,但是可以透过多个线程并发执行来解决。通常会用16~32根线程同时工作将iodepth塞满。
  • 异步的I/O通常使用libaio这样的方式一次提交一批I/O请求,然后等待一批的完成,减少交互的次数,会更有效率。
-bs=4k

表示单次I/O的块文件大小为4 KiB。默认值也是4 KiB。

  • 测试IOPS时,建议将bs设置为一个较小的值,如4k。
  • 测试吞吐量时,建议将bs设置为一个较大的值,如1024k。
-size=1G 表示测试文件大小为1 GiB。
-numjobs=1 表示测试线程数为1。
-runtime=1000 表示测试时间为1000秒。如果未配置,则持续将前述-size指定大小的文件,以每次-bs值为分块大小写完。
-group_reporting 表示测试结果里汇总每个进程的统计信息,而非以不同job汇总展示信息。
-filename=/dev/your_device 指定的云盘设备名,例如/dev/your_device。
-name=Rand_Write_Testing 表示测试任务名称为Rand_Write_Testing,可以随意设定。

标签:libaio,压测,Testing,测试,bs,iodepth,fio
来源: https://www.cnblogs.com/KrillLiszt/p/16192453.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有