Мой хост KVM имеет 4-ядерный процессор (немного слабый) и запускает ядро, настроенное для работы в реальном времени (с preempt_rt_full, isolcpus, no_hz full). Жилы 2 и 3 изолированы.
Ядро моих гостей также настроено на работу в реальном времени (с preempt_rt_full и no_hz_full).
При запуске двух гостей с 1 vcpu (по одному гостю на каждом изолированном ядре) задержка не заметна. Вот результат циклического теста:
VM1:/home/debian# циклический тест --система по умолчанию
T: 0 ( 737) P: 0 I: 1000 C: 50458 Мин.: 17 Акт: 207 Среднее: 187 Макс.: 1275
VM2:/home/debian# циклический тест --система по умолчанию
T: 0 ( 737) P: 0 I: 1000 C: 58514 Min: 15 Act: 193 Avg: 181 Max: 1186
При запуске одного гостя с 2 vcpu (на обоих изолированных ядрах) задержка действительно высока. Вот результат циклического теста:
VM1:/home/debian# циклический тест --система по умолчанию
T: 0 ( 737) P: 0 I: 1000 C: 40795 Мин.: 11 Акт: 207 Среднее: 697 Макс.: 775899
Я безуспешно пробовал несколько решений:
- Запуск настроенного гостя с 2 vcpu без привязки к процессору (так что на ядре 0 и 1)
- Запуск демона kvm (libvirtd) на тех же ядрах, что и гость (то есть на ядрах 2 и 3)
- Удаление ненужного контроллера (планшета,...)
- Увеличение оперативной памяти, выделенной гостю
Знаете, где я потерпел неудачу?