使用 dd 命令测试不同分区的性能

使用 dd 命令测试不同分区的性能

我正在尝试在 Azure 预览门户上设置 Web 应用程序。我从 Azure VM 库中创建了一台 Linux Centos 6.2 计算机并将一些磁盘附加到它。

df -h给了我这个:

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       28G  4.2G   22G  16% /
tmpfs                 1.7G     0  1.7G   0% /dev/shm
/dev/sda1             485M   94M  366M  21% /boot
/dev/sdb1             133G  188M  126G   1% /mnt/resource
/dev/sdc1              40G  176M   38G   1% /mnt/datadrive

sdb1并且sdc1都是存储驱动器。sdb1是您创建机器时创建的默认驱动器,sdc1我将其作为另一个 40GB 驱动器连接。

我想测试每个驱动器的性能并将其与启动驱动器进行比较(可能是这样sda1)。

我曾尝试使用dd它:

dd if=/dev/sda1 of=/tmp/zero bs=1k count=100k // test for sda1
dd if=/dev/sdb1 of=/tmp/zero bs=1k count=100k // test for sdb1
dd if=/dev/sdc1 of=/tmp/zero bs=1k count=100k // test for sdc1

但我不确定它是否真的在每次运行中都在不同的分区中进行测试。这是测试不同分区的读/写的正确方法吗?谢谢。

答案1

虽然 dd 可能是一个有用的工具,但记住你正在测试的文件可能已经被缓存,这一点也很重要。在 NFS 环境中,我们甚至会在测试迭代之间卸载并重新安装分区,以确保我们确实访问了服务器,而不是依赖于本地的东西。

答案2

你最好使用一些更具体的工具来测试磁盘速度,例如邦尼++或者离子计. 它们会给你比纯 dd 更详细的信息。

答案3

DD 可以通过这种方式提供一些见解,但是您使用的方法可以改进。

您需要确保源或目标没有物理驱动器支持,否则您可能会获得包含两个元素的性能特征。

我的建议是使用以下命令来测试性能。

将目标磁盘挂载在 /mnt/sdb1 下

dd if=/dev/zero of=/mnt/sdb1/image_file bs=1k count=...

源磁盘已卸载。

dd if=/dev/sdb1/image_file of=/dev/null bs=1k count=...

这应该会创建一个仅由空字符组成的大文件。这在任何磁盘上执行都是相当安全的,包括你的根目录(如果你有空间的话)。

相关内容