Назад | Перейти на главную страницу

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
mount -t xfs /dev/LVM1/lv_34179984_0 /home/test/image

Когда я пытаюсь скопировать файл 8G в / home / test / image, он блокируется после копирования 215M, iostat дает мне

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.00   29.82    0.00   70.18

Device:         rrqm/s   wrqm/s     r/s     w/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

Как это решить?

Вы решаете эту проблему, не создавая файловую систему поверх группы томов поверх файлов, которые уже находятся в файловой системе (возможно, в группе томов) на диске. Чтобы использовать ссылку на начало, вы зашли слишком глубоко, мой друг.

Каждый раз, когда вы пытаетесь что-то сделать на /home/test/image ваша система должна пройти следующие шаги:

  • Работа файловой системы на /home/test/image
    • Операция группы томов
    • Работа виртуального диска (устройства петли) на loop1
      • Работа файловой системы на 1.img
        • Дисковые операции где угодно 1.img жизни
    • Работа виртуального диска (устройства петли) на loop2
      • Работа файловой системы на 2.img
        • Дисковые операции где угодно 2.img жизни

Это по-прежнему оставляет без внимания кучу промежуточных шагов, которые происходят в ядре всякий раз, когда вы инициируете дисковый ввод-вывод (физический диск или устройство цикла). Проще говоря, вы просите свою систему сделать так много работы, что производительность будет ужасной.

Вы можете немного улучшить производительность, поставив 1.img и 2.img на отдельных физических дисках, но это вряд ли даст существенную пользу. Единственный реальный вариант для достойной производительности - это создать группу томов на физические диски.