Скорость ввода-вывода моего нового сервера довольно низкая. Я погуглил и перепробовал все, что могу вообразить. Прежде всего, это аппаратные компоненты:
В настоящее время он работает на программном 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 работают нормально. Я не могу поручиться за какой-либо другой дистрибутив.