我正在比较两个来源(裸机、kvm)和两种格式(gpt 分区、lvm 分区)的 HDD 存储的写入速度。命令已运行三次,我检查了平均值。我使用了一个连接到 RPi 4B 的 USB3 端口的希捷外置硬盘 1.5 TB 来进行测试
dd if=/dev/zero of=/media/darth_vader124/temp/test.img bs=8k count=10k conv=fdatasync status=progress
baremetal-gpt ~ 45.8 MB/s
baremetal-lvm ~ 75.2 MB/s
为什么lvm分区写入速度更高?是否发生了一些缓存?
vm使用文件作为磁盘(文件存储在裸机的lvm分区上)
dd if=/dev/zero of=/home/tdf/test.img bs=8k count=10k conv=fdatasync status=progress
写入速度 - 65.3 MB/s
dd if=/home/tdf/test.img of=/dev/null bs=8k count=10k iflag=nocache status=progress
读取速度 - 249 MB/秒
vm 使用整个 lvm 卷(lvm 在裸机上)作为磁盘
dd if=/dev/zero of=/home/tdv/test.img bs=8k count=10k conv=fdatasync status=progress
写入速度 - 75.7 MB/s
dd if=/home/tdv/test.img of=/dev/null bs=8k count=10k iflag=nocache status=progress
读取速度 - 112 MB/s
两个虚拟机都在磁盘内使用lvm(安装ubuntu 20.04服务器时的默认选项)
上述值是预期值吗?具体来说,为什么文件磁盘与卷磁盘的写入速度存在差异。使用文件磁盘时读取速度要高得多。尽管在 dd 中使用了 nocache,但某些地方是否发生了一些缓存?
编辑1:
我尝试了 /dev/urandom 而不是 /dev/zero,方法如下这。我在 lvm 上尝试了两次 - 第一次,保持与以前相同的配置;第二次,将磁盘更改为gpt,然后再次更改回lvm。
裸机-lvm:
dd if=/dev/urandom of=/run/user/1000/test.img bs=8k count=10k conv=fdatasync status=progress ;
dd if=/run/user/1000/test.img of=/media/darth_vader124/temp/test.img bs=8k count=10k conv=fdatasync status=progress
写入速度第一 - 66.6 MB/s;写入速度第二 - 49.1 MB/s
dd if=/media/darth_vader124/temp/test.img of=/dev/null bs=8k count=10k iflag=nocache status=progress
第一次读取速度 - 131.33 MB/s;第二次读取速度 - 60.33 MB/s
裸机-gpt:
dd if=/dev/urandom of=/run/user/1000/test.img bs=8k count=10k conv=fdatasync status=progress ;
dd if=/run/user/1000/test.img of=/media/darth_vader124/temp/test.img bs=8k count=10k conv=fdatasync
写入速度 - 55.4 MB/s
dd if=/media/darth_vader124/temp/test.img of=/dev/null bs=8k count=10k iflag=nocache status=progress
读取速度 - 93.7 MB/秒
没有其他进程正在使用该挂载(使用 iotop 发现)。我不太确定这里发生了什么。 lvm中磁盘性能第二次下降还有哪些其他原因?
编辑2:
我关闭了系统几个小时,并再次重新检查 baremetal-lvm 的读写带宽。这些值返回到第一次运行期间观察到的值,即
写入速度 ~ 73 MB/秒,读取速度 ~ 119 MB/秒
如果某些硬盘型号 24x7 运行,是否会损失读/写性能?我的是 Seagate Expansion 1.5TB 外置硬盘。或者还有其他问题,例如硬件错误?