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

KVM вызывает высокую загрузку ЦП, когда cache = 'none'

Я выполнил инструкции по http://www.linux-kvm.org/page/Tuning_KVM. Хост - Debian Squeeze Kernel 3.2, QEMU 1.0, libvirt 0.9.12 (все из squeeze-backport). Все четыре гостя также являются Debian Squeeze Kernel 3.2.

Итак, мои настройки в гостевом XML:

<cpu model='host-passthrough'/>
<disk [...]/>
   <driver name='qemu' type='raw' cache='none'/>
   <target [...] bus='virtio'/>
</disk>
<interface [...]>
   <model type='virtio'/>
</interface>

Планировщик ввода-вывода для гостей установлен на noop. На хосте я попробовал noop / deadline / cfq без существенных различий в производительности для меня. Хранилище для всех гостей обеспечивает LVM. Когда используешь cache='none' и у всех гостей нет заметной нагрузки, средняя загрузка ЦП на хосте за 15 минут увеличивается до 3-4. Но при использовании cache='writeback' загрузка ЦП хоста становится меньше 1. Может ли кто-нибудь объяснить, почему предлагаемые настройки LVM вызывают более высокую нагрузку на хост?

Кстати: при запуске тестов диска опция none приводит к более высокой производительности ввода-вывода, чем writeback.

ОК, с дополнительной опцией io='native' в разделе диска и планировщик ввода-вывода cfq в хост-системе я получу наилучшие результаты для своей системы. Скорость ввода-вывода практически одинакова для всех значений опции io в гостевом XML и для планировщика ввода-вывода на хосте и гостевом компьютере только cache='unsafe' дает значительно большую производительность. Но только с io='native', noop планировщик в гостевой и cfq планировщик на хосте, я получу самую низкую загрузку процессора.