现在的位置: 首页 > 综合 > 正文

linux用dd测试磁盘速度

2013年03月21日 ⁄ 综合 ⁄ 共 1022字 ⁄ 字号 评论关闭

在oracle的调优和维护的过程中,很多时候我们需要知道数据库的性能问题是不是由于I/O瓶颈来造成的。这就需要磁盘的读写速度。这里给出了使用dd来测试磁盘读写能力的办法。

首先要了解两个特殊的设备:
/dev/null:回收站、无底洞
/dev/zero:产生字符

 [root@localhost /]# df -m
Filesystem             1M-块        已用     可用 已用% 挂载点
/dev/sda2                28182     11599     15152  44% /
/dev/sda1                   92         9        79  10% /boot
none                       494         0       494   0% /dev/shm

1、 测试磁盘写能力
time dd if=/dev/zero of=/test.dbf bs=8k count=300000
因为/dev//zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。

 [root@localhost dev]# time dd if=/dev/zero of=/test.dbf bs=8k count=300000
读入了 300000+0 个块
输出了 300000+0 个块

real    1s
user    0s
sys     0s
这里总共写入了8k*300000 的数据,使用1s 算下磁盘度的能力约为:34.43M/s

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

[root@localhost /]# time dd if=/dev/sda2 of=/dev/null bs=8k
读入了 3664828+1 个块
输出了 3664828+1 个块

real    6s
user    0s
sys     2s

 经计算得出磁盘的读能力为:78.19M/s。

3、测试同时读写能力
time dd if=/dev/sdb1 of=/test1.dbf bs=8k
这个命令下,一个是物理分区,一个是实际的文件,对它们的读写都会产生IO(对/dev/sdb1是读,对/test1.dbf是写),假设他们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力.
这里就没有做测试了。磁盘没有空间了。

 

转载"http://www.d-zero.com.cn/index.php/2011/11/27/linuxdd/"

抱歉!评论已关闭.