Разработчик Серхио Лопес (Sergio López) представил экспериментальную реализацию синхронных очередей для файловой системы VirtIO-FS. Традиционно протокол VirtIO полагается на асинхронное поведение, однако во многих сценариях ввода-вывода гостевая система вынуждена ждать завершения операции. Новая реализация позволяет потоку хоста, управляющему процессом vCPU, завершать запрос до возврата управления гостевой ОС, что устраняет лишние задержки.
Ключевые метрики производительности
В качестве тестового кейса использовалась сборка проекта libkrunfw. Результаты показали существенное сокращение времени выполнения задачи при использовании синхронных очередей по сравнению со стандартным асинхронным режимом.
| Параметр | Асинхронный режим (стандарт) | Синхронные очереди (эксперимент) | Прирост |
|---|---|---|---|
| Время сборки libkrunfw | 7 минут 43 секунды | 5 минут 34 секунды | ~28% быстрее |
| Производительность случайного I/O | Базовая | Значительно выше | Улучшение латентности |
| Задержка удаления файлов | Базовая | Снижена | Оптимизация операций |
Технические детали и статус
Работа находится на стадии экспериментального pull request в проект libkrun. Реализация добавляет необязательную поддержку флага VIRTIO_FS_F_SYNC. Это позволяет администраторам и разработчикам виртуализации выбирать режим работы, оптимизированный под задачи с критичной задержкой, где ожидание завершения I/O является обязательным условием продолжения работы.
Данное улучшение особенно актуально для высоконагруженных виртуальных окружений, где частые мелкие операции ввода-вывода создают узкое место в производительности. Снижение времени сборки почти на треть в тестовом сценарии указывает на то, что для реальных рабочих нагрузок с интенсивным доступом к файлам выигрыш может быть еще более заметным.
Источник: Phoronix ↗
