找回密码
 立即注册
搜索
热搜: SDN 云计算 H3C
查看: 2354|回复: 0

[CentOS] CentOS下磁盘 IO 性能测试方法

[复制链接]

16

主题

4

精华

0

回帖

注册会员

体力
78 卡
贡献
37 个
金币
80 枚
注册时间
2019-8-24
最后登录
2020-7-15

活跃会员灌水之王突出贡献最佳新人

发表于 2020-3-7 23:30:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.  hdparm 命令
hdparm 命令提供了一个命令行的接口用于读取和设置IDE或SCSI硬盘参数,注意该命令只能测试磁盘的读取速率。
例如,测试 sda 磁盘的读取速率:
[root@server-68.2.stage.polex.io var ]$ hdparm -Tt /dev/polex_pv/varvol/dev/polex_pv/varvol: Timing cached reads:   15588 MB in  2.00 seconds = 7803.05 MB/sec Timing buffered disk reads: 1128 MB in  3.01 seconds = 374.90 MB/sec
从测试结果看出,带有缓存的读取速率为:7803.05MB/s ,磁盘的实际读取速率为:374.90 MB/s 。

2.  dd 命令
Linux dd 命令用于读取、转换并输出数据。dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
我们可以利用 dd 命令的复制功能,测试某个磁盘的 IO 性能,须要注意的是 dd 命令只能大致测出磁盘的 IO 性能,不是非常准确
测试写性能命令:


[root@server-68.2.stage.polex.io var ]$ time dd if=/dev/zero of=test.file bs=1G count=2 oflag=direct2+0 records in2+0 records out2147483648 bytes (2.1 GB) copied, 13.5487 s, 159 MB/sreal    0m13.556suser    0m0.000ssys    0m0.888s


可以看到,该分区磁盘写入速率为 159M/s,其中:

  • /dev/zero 伪设备,会产生空字符流,对它不会产生 IO 。
  • if 参数用来指定 dd 命令读取的文件。
  • of 参数用来指定 dd 命令写入的文件。
  • bs 参数代表每次写入的块的大小。
  • count 参数用来指定写入的块的个数。
  • offlag=direc 参数测试 IO 时必须指定,代表直接写如磁盘,不使用 cache 。
测试读性能命令:
[root@server-68.2.stage.polex.io var ]$ dd if=test.file of=/dev/null  iflag=direct4194304+0 records in4194304+0 records out2147483648 bytes (2.1 GB) copied, 4.87976 s, 440 MB/s
可以看到,该分区的读取速率为 440MB/s

3.  fio 命令
fio 命令是专门测试 iops 的命令,比 dd 命令准确,fio 命令的参数很多,这里举几个例子供大家参考:
顺序读:
fio -filename=/var/test.file -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_r

随机写:
fio -filename=/var/test.file -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_randw

顺序写:
fio -filename=/var/test.file -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_w

混合随机读写:
fio -filename=/var/test.file -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=test_r_w -ioscheduler=noop



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表