图像上的 LVM 非常慢

图像上的 LVM 非常慢

创建 lvm 后

dd if=/dev/zero of=1.img bs=1M count=16384
dd if=/dev/zero of=2.img bs=1M count=16384
losetup /dev/loop1 1.img
losetup /dev/loop2 2.img
pvcreate /dev/loop1
pvcreate /dev/loop2
vgcreate LVM1 /dev/loop1 /dev/loop2
vgchange -an LVM1

我分配了10G卷并格式化它

lvcreate -L10240 -n lv_34179984_0 LVM1
mkfs.xfs /dev/LVM1/lv_34179984_0
挂载-t xfs / dev / LVM1 / lv_34179984_0 / home /测试/图像

当我尝试将一个 8G 文件复制到 /home/test/image 时,它​​在复制 215M 后阻塞,iostat 给出

平均 CPU:%用户%nice%系统%iowait%steal%idle
           0.00 0.00 0.00 29.82 0.00 70.18

设备:rrqm/s wrqm/sr/sw/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
dm-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1.00 0.00 0.00 100.20

如何解决这个问题?

答案1

您可以通过不在磁盘上文件系统(可能在卷组中)中已有的文件之上的卷组之上创建文件系统来解决这个问题。要使用 Inception 参考,您已经走得太深了,我的朋友。

每次你尝试在/home/test/image系统上执行某些操作时都必须经过以下步骤:

  • 文件系统操作/home/test/image
    • 卷组操作
    • 虚拟磁盘(循环设备)操作loop1
      • 文件系统操作1.img
        • 磁盘操作在任何1.img位置
    • 虚拟磁盘(循环设备)操作loop2
      • 文件系统操作2.img
        • 磁盘操作在任何2.img位置

这仍然忽略了启动磁盘 I/O(物理磁盘或循环设备)时内核中发生的一系列中间步骤。简而言之,您要求系统执行如此多的工作,性能将很糟糕。

1.img您可以通过将和放在单独的物理磁盘上来稍微提高性能2.img,但这不太可能带来实质性的好处。获得良好性能的唯一真正选择是创建卷组物理磁盘

相关内容