Один из вопросов при использовании ELiS: какую систему виртуализации выбрать.
Проведен небольшой тест чистой установки ELiS на голое железо (baremetal) и на виртуальную машину под управлением KVM.
Содержание
Конфигурация[править]
- 2 CPU Xeon E5-2690v2 (всего 20 ядер 40 потоков) 3-3.6 ГГц.
- 128 ГБ RAM
- SSD
- CentOS8
Методика[править]
Запуск apache benchmark на главную страницу свежеустановленной ELiS.
Генерация новых страниц в PDF-плеере закешированных и нет с проверкой скорости в средствах отладки браузера. Файл PDF являлся оцифрованной книгой.
Результаты[править]
Процент выполненных запросов за время в миллисекундах (меньше - лучше):
ab -n 10000 -c 30 http://elis.example.com/index.php baremetal, kvm 50%: 248 314 95%: 274 372 99%: 297 401 100%: 3260 3310
Т.о. видно, что KVM даёт оверхэд около 30%.
При генерации страниц для кешированных страниц также наблюдалось замедление от 0 до 30% со временем генерации в районе 40 мс.
Для генерации новых страниц разницы между baremetal и KVM не наблюдалось, а время генерации составляло 1 секунду.
Выводы[править]
В целом результаты согласуются с исследованием IBM, в котором KVM даёт оверхэд на IO около 50%. Но т.к. в операциях загрузки сайта есть не только задачи ввода-вывода, то оверхэд уменьшается.
Задача генерации изображения страницы PDF оказывается заведомо более тяжёлой вычислительно и оверхэд по вводу-выводу при этом незаметен.
При типичном использовании можно ожидать работу медленнее примерно на 30%.
Аналогичным образом можно спрогнозировать замедление, если бы использовалась контейнерная виртуализация docker, при которой можно ожидать замедление на уровне 5-10% за счёт оверхэда на docker NAT.