LINUX 的 DD程序为什么在网络拷贝时,速度只有11Ms这么低,我的是千兆网络环境。

LINUX 的 DD程序为什么在网络拷贝时,速度只有11Ms这么低,我的是千兆网络环境。,第1张

11M/s 也就是 88Mbps 。确实低了点,100M的网络跑这个速度才能算正常。

但 1000M 网要求网线,路由器网关还有网卡都要是千兆网的硬件基础。

你去检查网络硬件还有网线吧。

还一个问题是网络只是数据传输,你的硬盘,还有程序的输出输入能力也都是瓶颈。

要跑满1000M,限制太多了。正常来说1000M 的网络,跑到 15M 到 20M 的速度基本算是正常最高速。

PC机做RAID, 一般都是软RAID (慢), 而且做的RAID 1 (会更慢)

使用dd命令来测量吞吐率(写速度)

dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync

使用dd命令测量延迟

dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync

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

/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是写),假设他们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7578129.html

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

发表评论

登录后才能评论

评论列表(0条)

保存