硬盘性能测试
参考:https://help.aliyun.com/zh/ecs/user-guide/test-the-performance-of-block-storage-devices
机器 tikv01
配置:4210*2/镁光16G-Rankx2-DDR4-2933*16/希捷600G(SAS)*2+三星960G(SSD)*12/千兆4口-Intel-i350*1+万兆2口-Intel-Intel-x722*1/LSI-3108-1G*1/交流550W*2
分区:根硬盘600G*2 RAID1 数据盘12*960G RAID5 挂载点 /data

目标:600G*2 RAID1 系统盘 测试目录/da1/temp注意这个目录下存储了containerd容器镜像和日志 可用空间 400G*0.75-(应用标准输出日志+应用容器镜像)

指标区别:
|
指标 |
核心区别(一句话) |
测什么 |
单位 |
指标场景IO特征 |
代表能力 |
典型场景 |
fio测试方式 |
|---|---|---|---|---|---|---|---|
|
IOPS |
“一秒能做多少次小操作” |
IO次数 |
ops/s |
小块 + 随机 + 高并发 |
并发处理能力 |
数据库 / TiKV / Redis / Elasticsearch |
randread/randwrite + 4K + iodepth=32~128 |
|
吞吐量(Bandwidth) |
“一秒能搬多少数据” |
数据传输速度 |
MB/s / GB/s |
大块 + 顺序 + 高带宽 |
数据搬运能力 |
备份 / 日志 / 大文件 / 视频 |
read/write + 128K~1M + iodepth=32~128 |
|
延迟(Latency) |
“单次IO要等多久” |
响应时间 |
ms / µs |
单IO + 无排队 |
响应速度 / 用户体验 |
交易系统 / KV / SQL查询 |
randread/randwrite + 4K + iodepth=1 |
本地盘 fio 测试汇总
机器信息
- 服务器:tikv01.dlc.zzbm.qianxin-inc.cn
- CPU:4210 × 2
- 内存:DDR4 2933 × 16(16GB Rank ×2)
- HDD:Seagate 600G SAS ×2
- SSD:Samsung 960G ×12
- 网络:千兆 Intel i350 ×4 + 万兆 Intel X722 ×1
- RAID 控制器:LSI 3108(1GB Cache)
- 电源:550W ×2
- 测试目录:/da1/temp(RAID1 系统盘,约 600G)
1. 延迟(Latency)
|
指标 |
顺序写 |
顺序读 |
随机写 |
随机读 |
|---|---|---|---|---|
|
平均延迟 |
0.038 ms |
0.038 ms |
0.684 ms |
3.910 ms |
|
Clat Avg |
0.031 ms |
0.031 ms |
0.676 ms |
3.905 ms |
|
P99 |
0.04 ms |
0.04 ms |
14.6 ms |
7.18 ms |
|
极端尾延迟 |
0.79 ms |
0.79 ms |
501 ms |
908 ms |
2. 吞吐(Bandwidth)
|
指标 |
顺序写 |
顺序读 |
|---|---|---|
|
平均吞吐(BW) |
216 MiB/s(≈227 MB/s) |
228 MiB/s(≈239 MB/s) |
|
测试周期吞吐速率 |
216 MiB/s(≈227 MB/s) |
228 MiB/s(≈239 MB/s) |
|
总数据量 |
211 GiB |
223 GiB |
3. IOPS(随机性能)
|
指标 |
随机写 |
随机读 |
|---|---|---|
|
平均 IOPS |
1338 IOPS |
1507 IOPS |
|
最小 IOPS |
8 IOPS |
670 IOPS |
|
最大 IOPS |
63301 IOPS |
2004 IOPS |
|
IOPS 标准差 |
618.60 IOPS |
47.00 IOPS |
|
测试周期 IOPS |
1338 IOPS |
1507 IOPS |
刷新内存:注意每次测试之前刷新内存
sync
echo 3 > /proc/sys/vm/drop_caches
测试本地盘的顺序写时延:
sudo fio -direct=1 -iodepth=1 -rw=write -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/da1/temp/write.1 -size=10G -name=test

|
指标 |
数值 |
|---|---|
|
平均延迟(Avg Latency) |
0.038 ms |
|
磁盘完成延迟(Clat Avg) |
0.031 ms |
|
P99 |
0.04 ms |
|
极端尾延迟(Max/Outlier) |
0.79 ms |
测试本地盘的顺序读时延:
sudo fio -direct=1 -iodepth=1 -rw=read -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/da1/temp/read.1 -size=10G -name=test

|
指标 |
数值 |
|---|---|
|
平均延迟(Avg Latency) |
0.038 ms(38 µs) |
|
磁盘完成延迟(Clat Avg) |
0.031 ms(31 µs) |
|
P99 延迟 |
0.04 ms(40 µs) |
|
极端尾延迟(Max/Outlier) |
0.79 ms(790 µs) |
测试本地盘的随机写时延:
sudo fio -direct=1 -iodepth=1 -rw=randwrite -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/da1/temp/randwrite.1 -size=10G -name=test

|
指标 |
数值 |
|---|---|
|
平均延迟(Avg Latency) |
0.684 ms(684 µs) |
|
磁盘完成延迟(Clat Avg) |
0.676 ms(676 µs) |
|
P99 延迟 |
14.6 ms(14615 µs) |
|
极端尾延迟(Max/Outlier) |
501 ms(501098 µs) |
测试本地盘的随机读时延:
sudo fio -direct=1 -iodepth=1 -rw=randread -ioengine=libaio -bs=4k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/da1/temp/randread.1 -size=10G -name=test

|
指标 |
数值 |
|---|---|
|
平均延迟(Avg Latency) |
3.910 ms(3910 µs) |
|
磁盘完成延迟(Clat Avg) |
3.905 ms(3905 µs) |
|
P99 延迟 |
7.18 ms(7177 µs) |
|
极端尾延迟(Max/Outlier) |
908 ms(908852 µs) |
测试本地盘的顺序写吞吐量:
sudo fio -direct=1 -iodepth=128 -rw=write -ioengine=libaio -bs=128k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/da1/temp/write.1 -size=10G -name=test

|
指标 |
数值 |
|---|---|
|
平均吞吐(BW) |
216 MiB/s(≈227 MB/s) |
|
总写入量 |
211 GiB |
|
测试周期吞吐速率 |
216 MiB/s(≈227 MB/s) |
测试本地盘的顺序读吞吐量:
sudo fio -direct=1 -iodepth=128 -rw=read -ioengine=libaio -bs=128k -numjobs=1 -time_based=1 -runtime=1000 -group_reporting -filename=/da1/temp/read.1 -size=10G -name=test

|
指标 |
数值 |
|---|---|
|
平均吞吐(BW) |
228 MiB/s(≈239 MB/s) |
|
IOPS |
1824 |
|
总读取量 |
223 GiB |
|
测试周期吞吐速率 |
228 MiB/s(≈239 MB/s) |
测试本地盘的随机写IOPS:
sudo fio -direct=1 -iodepth=32 -rw=randwrite -ioengine=libaio -bs=4k -numjobs=4 -time_based=1 -runtime=1000 -group_reporting -filename=/da1/temp/randwrite.1 -size=10G -name=test

|
指标 |
数值 |
|---|---|
|
平均 IOPS |
1338 IOPS |
|
最小 IOPS |
8 IOPS |
|
最大 IOPS |
63301 IOPS |
|
IOPS 标准差(Stdev) |
618.60 IOPS |
|
测试周期 IOPS |
1338 IOPS |
测试本地盘的随机读IOPS:
sudo fio -direct=1 -iodepth=32 -rw=randread -ioengine=libaio -bs=4k -numjobs=4 -time_based=1 -runtime=1000 -group_reporting -filename=/da1/temp/randread.1 -size=10G -name=test

|
指标 |
数值 |
|---|---|
|
平均 IOPS |
1507 IOPS |
|
最小 IOPS |
670 IOPS |
|
最大 IOPS |
2004 IOPS |
|
IOPS 标准差(Stdev) |
47.00 IOPS |
|
测试周期 IOPS |
1507 IOPS |
浙公网安备 33010602011771号