fio
fio 是一个专业的磁盘性能测试工具,本文将以滴滴云 SSD 云盘为例,演示用 fio 测试 EBS 性能的方法。
磁盘性能指标
指标 | 说明 |
---|---|
IOPS | 每秒处理随机读写的 IO 个数 |
带宽 | 每秒处理顺序读写的 IO 数据量 |
延迟 | 处理单个 IO 的平均耗时 |
读写类型说明
类型 | 说明 |
---|---|
顺序读/写 | 每次 IO 的读/写位置紧跟上一个 IO 的读/写位置,即每次读/写的偏移量是顺序递增的 |
随机读/写 | 每次 IO 的读/写位置在磁盘内是随机的,与上一个 IO 的读/写位置无关 |
环境准备
创建滴滴云 EBS
DC2 配置:
参数 | 类型 | 规格 | 说明 |
---|---|---|---|
操作系统 | centos 7 | - | - |
CPU | - | 4核 | - |
内存 | - | 8G | - |
系统盘 | 本地 SSD | 80G | vda |
数据盘 | SSD 云盘(EBS) | 200G | vdb |
登录 DC2, 用 lsblk 命令查看挂载好的块设备:
[dc2-user@10-254-252-85 ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 80G 0 disk
└─vda1 253:1 0 80G 0 part /
<b>vdb 253:16 0 200G 0 disk</b>
其中, vdb 就是接下来要测试的 EBS。
安装 fio
# sudo yum install fio -y
查看 fio 版本
[dc2-user@10-254-252-85 ~]$ fio -v
fio-3.1
开始测试
***注:如果 EBS 里已有数据,为防止数据损坏,请用文件的方式进行测试,即: 将 EBS mount 到目录后,用 fio 读写 mount 目录下的 test 文件。***
测试顺序写带宽
[dc2-user@10-254-252-85 ~]$ sudo fio -direct=1 -iodepth=128 -ioengine=libaio -rw=write -bs=1M -size=10G -numjobs=1 -runtime=200 <mark>-filename=/mnt/test</mark> -name=perf
输出:
perf: (g=0): rw=write, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T)