0


SSD存储测试(二) ----测试工具介绍

  • 了解常用的SSD测试工具:FIO、IOMeter、CrystalDiskMark、ATTO Disk Benchmark等。
  • 安装并熟悉这些工具的基本操作和使

一、FIO安装和使用

1、安装FIO

Ubuntu/Debian:

sudo apt update
sudo apt install fio

CentOS/Fedora:

sudo yum install fio

源码安装:

git clone https://github.com/axboe/fio.git
cd fio
make
sudo make install

2、使用

2.1 使用方式

可通过配置文件和命令行两种方式:

命令行:

fio --name=randread --rw=randread --size=1G --bs=4k --numjobs=1 --runtime=60 --group_reporting

配置文件:

FIO 配置文件采用 INI 风格,由多个全局选项任务块(job)组成。全局选项对所有任务有效,而任务块内的选项仅对该任务生效。

[global]  # 全局配置,适用于所有任务
rw=randread    # 随机读模式
size=1G        # 测试文件大小为1GB
bs=4k          # 块大小为4KB
numjobs=4      # 启动4个任务
iodepth=32     # I/O队列深度为32
direct=1       # 使用直接I/O,绕过缓存
runtime=60     # 运行时间为60秒
group_reporting # 汇总报告输出

[task1]  # 第一个任务
filename=/dev/sda1

[task2]  # 第二个任务
filename=/dev/nvme0n1

[task3]  # 第三个任务,覆盖全局配置
rw=write  # 顺序写模式
filename=/dev/sdb1

解释:

  • [global] 块定义了全局配置,适用于所有任务。
  • [task1], [task2], [task3] 是具体的任务块,可以为每个任务定义特定的配置。
  • filename 指定了不同的设备或文件。
  • [task3] 中的 rw=write 覆盖了全局的 rw=randread 设置,使得 task3 任务使用顺序写。

执行配置文件:fio 配置文件

执行结果:执行配置文件测试后,FIO 会生成详细的测试报告,包括 IOPS、吞吐量、延迟等。以下是典型的输出结果

seq_read: (groupid=0, jobs=1): err= 0: pid=12345: Tue Sep 12 10:00:00 2024
  read: IOPS=1000, BW=1000MiB/s (1050MB/s)(120GiB/120001msec)
    clat (usec): min=20, max=500, avg=50.12, stdev=10.40
    lat (usec): min=21, max=501, avg=51.14, stdev=10.42
    clat percentiles (usec):
     |  1.00th=[   30],  5.00th=[   35], 10.00th=[   40], 50.00th=[   50], 
     | 90.00th=[   60], 99.00th=[  100], 99.99th=[  200]

seq_write: (groupid=1, jobs=1): err= 0: pid=12346: Tue Sep 12 10:02:00 2024
  write: IOPS=900, BW=900MiB/s (950MB/s)(100GiB/120001msec)
    clat (usec): min=22, max=600, avg=55.12, stdev=12.30
    lat (usec): min=23, max=601, avg=56.14, stdev=12.42
  • IOPS:每秒 I/O 操作数。
  • BW (Bandwidth):吞吐量,单位是 MiB/s 或 MB/s。
  • 延迟 (latency):每次 I/O 操作的延迟,单位是微秒。

2.2 常见参数

配置项****描述rw读写模式 (

read

write

randread

randwrite

等)。bs块大小,例如

4k

1M

。size测试文件或设备的大小。numjobs并发任务数iodepthI/O队列深度,runtime测试运行时间。direct是否使用直接 I/O (

0

为否,

1

为是)。sync同步I/O模式。filename测试文件或设备的路径。group_reporting汇总输出报告结果。time_based基于时间的测试。ioengineI/O 引擎 (

sync

libaio

mmap

等)。rwmixread读写混合比例,例如

70

表示 70% 为读,30% 为写buffered使用缓存的读写测试。output将输出结果写入文件。
对iodepth的解释:

  • 队列深度(I/O Depth):指的是在任何时刻,可以并行处理的 I/O 请求数。它反映了设备在同一时间能够同时处理多少个读写操作。对于硬盘或 SSD 来说,较高的 iodepth 值可以测试设备在高并发条件下的性能。
  • iodepth:表示每次只有一个或几个 I/O 请求在排队,系统在等待当前请求完成后才会发送下一个请求。这通常用于模拟低并发环境。
  • iodepth:表示可以同时发出多个请求,系统不需要等待一个请求完成后才发送下一个请求。这通常用于测试高负载或并发环境。

应用场景

  • iodepth(例如 1 或 2):适合模拟单线程、低并发的应用程序负载,常用于测量延迟和轻负载情况下的性能。
  • iodepth(例如 32、64 或更高):适合模拟高并发的工作负载,如数据库、虚拟化或多用户环境,帮助衡量存储设备在高负载下的吞吐量和 IOPS。

=============今天好困,,剩下的明天补充以下,记得实操啊~~======================


本文转载自: https://blog.csdn.net/weixin_43590629/article/details/142110626
版权归原作者 一个工作5年后勇闯SSD存储领域的测试 所有, 如有侵权,请联系我们删除。

“SSD存储测试(二) ----测试工具介绍”的评论:

还没有评论