如何使用DD命令测试Linux磁盘的性能

如何使用DD命令测试Linux磁盘的性能,第1张

首先要了解两个特殊的设备:

/dev/null:回收站、无底洞

/dev/zero:产生字符

Ø 测试磁盘写能力

1

time dd if=/dev/zero of=/test.dbf bs=64k count=16k

因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。

这个很不准确的,因为命令结束的时候数据还没有真正写到磁盘上去。

1

time dd if=/dev/zero of=/test.dbf bs=64k count=16k conv=fsync

这个还算准确,数据已经写入磁盘。

1

time dd if=/dev/zero of=/test.dbf bs=64k count=4k oflag=dsync

这个可以当成是模拟数据库插入操作,所以很慢。

Ø 测试磁盘读能力

1

time dd if=/dev/sdb1 of=/dev/null bs=8k

因为/dev/sdb1是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力。

Ø 测试同时读写能力

1

time dd if=/dev/sdb1 of=/test1.dbf bs=8k

这个命令下,一个是物理分区,一个是实际的文件,对它们的读写都会产生IO(对/dev/sdb1是读,对/test1.dbf是写),假设他们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力

通常就是 计算读写一定大小的块耗费的时间 ,本身有速度输出

基本的测试如下

磁盘读速度

synctime dd if=[mountpoint] of=/dev/null bs=4096k count=2000

测试数据大小为:4096k×2000

磁盘写速度

synctime dd if=/dev/zero of=[mountpoint] bs=4096k count=2000

测试数据大小为:4096k×2000

[mountpoint]替换为你实际的挂载点

以上都是测试 2000个 4M块的速度 可以通过改变 bs大小来分析不同级别块的性能

可以通过写更详细的脚本来实现更详细的输出


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/59926.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-27
下一篇2023-02-27

发表评论

登录后才能评论

评论列表(0条)

    保存