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

Linux - KVM - очень медленный диск io

Скорость ввода-вывода моего нового сервера довольно низкая. Я погуглил и перепробовал все, что могу вообразить. Прежде всего, это аппаратные компоненты:

В настоящее время он работает на программном RAID5.

Пропускная способность с хост-машины:

# dd if=/dev/zero of=testfile bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 4.44095 s, 242 MB/s

Текущая пропускная способность гостевой системы:

# dd if=/dev/zero of=testfile bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 94.8643 s, 11.3 MB/s

Я использую самокомпилированный QEMU + LIBVIRT плюс самокомпилированное ядро ​​Linux (3.10.32-lns-opteron-kvmhost). Я могу предоставить части из конфигурации ядра.

Я использую оба ядра в другой системе (тот же процессор, но с другими жесткими дисками), которая работает с полной производительностью ввода-вывода.

Я не устанавливал другую систему, поэтому я не могу достоверно воспроизвести проблему.

Конфигурация жесткого диска гостя:

<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none' io='threads'/>
  <source dev='/dev/vmstore/guest-data'/>
  <target dev='vda' bus='virtio'/>
</disk>

Как видите, я использую LVM.

У меня нет проблем с производительностью процессора / памяти - только дисковый ввод-вывод.

Единственная очевидная проблема, которую я вижу в вашей конфигурации является io='threads'. Это вряд ли обеспечит лучшую производительность, чем io='native'.

Кроме того, я также не рекомендую компилировать какие-либо из этих компонентов (ядро, libvirt, QEMU) самостоятельно, если вы еще не хорошо их понимаете. Лучше использовать хорошо протестированный и известный рабочий пакет из дистрибутива Linux, который оптимизировал его для производительности и стабильности. RHEL / CentOS и Fedora работают нормально. Я не могу поручиться за какой-либо другой дистрибутив.