Параллельный доступ к производительности btrfs

Я использую Raid5 (3x 500GB Sata2 HDD) на основе btrfs 3.12 (Ubuntu 14.04 x64) и виртуальная машина VirutalBox использует этот том. Пока никакой другой процесс не обращается к тому, виртуальная машина работает нормально. Но недавно я скопировал файл большего размера и на этот том, и у меня почти не было iops из моей виртуальной машины. Открытие даже небольших программ внутри ВМ занимало до нескольких минут. Процесс копирования, напротив, работает на приемлемой скорости. Кроме того, я использовал gzip сжать этот большой файл на btrfs Том и виртуальная коробка, кажется, имеют проблемы с поддержанием виртуальной машины (окна vm становятся серыми, не отвечает).

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

Не могли бы вы объяснить мне это поведение и, возможно, предложить что-то, чтобы улучшить пропускную способность виртуальной машины?

1 ответ

Если у вас есть образ диска на томе BTRFS, вам может потребоваться отключить функцию " Копировать при записи", по крайней мере, для образа вашего виртуального диска.

CoW копирует измененные данные в новое пространство (с его изменениями) перед изменением данных заголовка файла. На виртуальной машине это означает перемещение огромного файла даже для самых элементарных изменений.

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

chattr +C directory

Однако это не гарантирует No_COW, так как вы можете создать субобъемный снимок Btrfs, содержащий файл изображения (который сделает его только один раз).

Другие вопросы по тегам