写点什么

磁盘 I/O 性能测试工具

  • 2022 年 6 月 01 日
  • 本文字数:1573 字

    阅读完需:约 5 分钟

磁盘I/O性能测试工具

测试磁盘 I/O 性能的工具有很多,如 DD、Bonnie++、fio、iometer、hdparm 等。下面简单介绍其中几个工具。

1. DD

DD(命令为 dd)是 Linux 系统上一个非常流行的文件复制工具,在复制文件的同时可以根据其具体选项进行转换和格式化等操作。通过 DD 工具复制同一个文件(相同数据量)所需要的时间长短即可粗略评估磁盘 I/O 的性能。一般的 Linux 系统中都自带这个工具,用 man dd 命令即可查看 DD 工具的使用手册。

例子:用 DD 工具向磁盘上写入文件的测试,测试 4 种不同的块大小.

dd if=/dev/zero of=dd1.dat conv=fsync oflag=direct bs=1K count=100Kdd if=/dev/zero of=dd1.dat conv=fsync oflag=direct bs=8K count=100Kdd if=/dev/zero of=dd1.dat conv=fsync oflag=direct bs=1M count=10Kdd if=/dev/zero of=dd1.dat conv=fsync oflag=direct bs=8M count=2K
复制代码
2. fio

fio 是一个 I/O 工具用来对硬件进行压力测试和验证,支持 13 种不同的 I/O 引擎,包括:sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等,I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, 等等。

常用参数:

filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的data目录。direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。rw=randwrite 测试随机写的I/Orw=randrw 测试随机写和读的I/Obs=16k 单次io的块文件大小为16kbsrange=512-2048 同上,提定数据块的大小范围size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。numjobs=30 本次的测试线程为30.runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。ioengine=psync io引擎使用pync方式rwmixwrite=30 在混合读写的模式下,写占30%group_reporting 关于显示结果的,汇总每个进程的信息。lockmem=1g 只使用1g内存进行测试。zero_buffers 用0初始化系统buffer。nrfiles=8 每个进程生成文件的数量。
复制代码

磁盘读写常用测试点:

Read=100% Ramdon=100% rw=randread (100%随机读)Read=100% Sequence=100% rw=read (100%顺序读)Write=100% Sequence=100% rw=write (100%顺序写)Write=100% Ramdon=100% rw=randwrite (100%随机写)Read=70% Sequence=100% rw=rw, rwmixread=70, rwmixwrite=30(70%顺序读,30%顺序写)Read=70% Ramdon=100% rw=randrw, rwmixread=70, rwmixwrite=30(70%随机读,30%随机写)
复制代码
3. Bonnie++

Bonnie++ 是一款文件系统的基准性能自动化测试工具,包括测试文件系统的读写能力、查找能力、创建新文件的能力,它通过一系列的简单测试来生成文件系统的性能参数。其主程序提供两种风格的测试:针对单个文件的数据库风格的访问测试和针对大量小文件的创建和删除来模拟诸如 Squid , INN, 或者 Maildir 格式的 Email 这一类风格的访问测试。 Bonnie++ 对三个方面做基准测试:数据读、写速度,每秒可以完成的文件元数据操作次数。 Bonnie++ 12 项结果分为 5 大类,分别是 Sequential Output (写测试), Sequential Input (读测试), Random Seeks (读写测试), Sequential Create (顺序读写文件测试)和 Random Create (随机读写文件测试)。

常用参数:

-d:在测试时会生成一些文件,并读或更改这些文件。这个参数是设置测试文件放置的路径。-s:单个测试文件的尺寸。这个参数值必须大于等于2倍测试使用的内存(最好为测试使用内存的两倍)。测试时应该用大文件尺寸。-m:测试的机器名称-r:测试需要用多少内存。如果省略这个值,则会用全部的物理内存。-x:循环几次-u:指定执行测试的OS用户。当以root执行时,必须显式指定。
复制代码
4.hdparm

hdparm 命令 提供了一个命令行的接口用于读取和设置 IDE 或 SCSI 硬盘参数。hdparm 也可以粗略地测试磁盘的 I/O 性能,通过如下的命令即可粗略评估 sdb 这个磁盘的读性能。

hdparm -tT /dev/sdb
复制代码


发布于: 刚刚阅读数: 9
用户头像

InfoQ签约作者 2018.11.30 加入

热爱生活,收藏美好,专注技术,持续成长

评论

发布
暂无评论
磁盘I/O性能测试工具_6月月更_穿过生命散发芬芳_InfoQ写作社区