Производительность дисков kvm virtio сильно снижается при нагрузке iozone

Я провожу ряд тестов, чтобы понять, почему некоторые из наших рабочих нагрузок создают действительно плохой "пользовательский опыт" при работе с базами данных.

У нас есть сервер dl160g9 с контроллером B140i (4 диска LFF 7.2k об / мин). хост - это centos 7, механизм виртуализации - kvm, версия 105.el7_2.4 (1.5.3) от centos virt sig. Диски представляют собой толстые тома LVM поверх поддельного рейда 5, генерируемого контроллером b140i. Настройка настроена на исполнение (настройка гостя virt не сильно меняется).

Мы запускаем как виртуальные машины Linux, так и Win. В любом случае хранилище локальное, подключено к виртуальной машине через virtio с cache=none и io = native.

Поскольку наши db-файлы малы, я моделирую рабочие нагрузки:

iozone -i 0 -i 8 -s 4m -t X

где X - 1 (простой случай) или 25 (фактическая база пользователей).

Это результаты на хосте:

Children see throughput for 1 mixed workload    = 1768421.25 kB/sec
Parent sees throughput for 1 mixed workload     =  293368.05 kB/sec
Min throughput per process          = 1768421.25 kB/sec 
Max throughput per process          = 1768421.25 kB/sec
Avg throughput per process          = 1768421.25 kB/sec
Min xfer                    =    4096.00 kB

Children see throughput for 25 mixed workload   = 12061204.12 kB/sec
Parent sees throughput for 25 mixed workload    =   39519.61 kB/sec
Min throughput per process          = 1017999.00 kB/sec 
Max throughput per process          = 1237047.00 kB/sec
Avg throughput per process          =  482448.16 kB/sec
Min xfer                    =    2212.00 kB

Виртуальная машина Linux (Ubuntu 14.04 LTS) показывает:

Children see throughput for 1 mixed workload    = 1901520.62 KB/sec
Parent sees throughput for 1 mixed workload     =  176180.65 KB/sec
Min throughput per process          = 1901520.62 KB/sec 
Max throughput per process          = 1901520.62 KB/sec
Avg throughput per process          = 1901520.62 KB/sec
Min xfer                    =    4096.00 KB

Children see throughput for 25 mixed workload   = 5338608.75 KB/sec
Parent sees throughput for 25 mixed workload    =   15434.67 KB/sec
Min throughput per process          =       0.00 KB/sec 
Max throughput per process          = 2675395.75 KB/sec
Avg throughput per process          =  213544.35 KB/sec
Min xfer                    =       0.00 KB

Результаты для Windows 10 64bit pro VM:

 Children see throughput for 1 mixed workload    =  496220.16 KB/sec
 Parent sees throughput for 1 mixed workload     =  162133.06 KB/sec
 Min throughput per process                      =  496220.16 KB/sec
 Max throughput per process                      =  496220.16 KB/sec
 Avg throughput per process                      =  496220.16 KB/sec
 Min xfer                                        =    4096.00 KB

 Children see throughput for 25 mixed workload   = 1298231.58 KB/sec
 Parent sees throughput for 25 mixed workload    =    7626.09 KB/sec
 Min throughput per process                      =       0.00 KB/sec
 Max throughput per process                      =  285706.31 KB/sec
 Avg throughput per process                      =   51929.26 KB/sec
 Min xfer                                        =       0.00 KB

Я вижу здесь ряд вопросов:

  • linux perf на потоках 1x кажется допустимым в соответствии с накладными расходами virtio, но параллельный доступ с потоками кажется беспорядком, особенно странно, что минимальная скорость 0 КБ / сек

  • В то время как Linux Linux масштабируется плохо, win (и связанные с ней драйверы virtio) кажутся беспорядочными даже в 1 потоке. В то время как я ожидал некоторых накладных расходов, люди получили лучшие результаты здесь

Конечно, win 10 является новым и поддерживается только последними (117) драйверами, но win 8.1 дает аналогичные результаты (опущено, поскольку этот пост становится большим).

Я открыт для любого документа или предложения, которые могут указать мне правильное направление: я знал, что кэш = нет, необработанного LVM и правильной настройки было достаточно, чтобы получить хорошие результаты.

Обновленная информация

ядро (сток): Linux dl190g9 3.10.0-327.18.2.el7.x86_64 #1 SMP Чт 12 мая 11:03:55 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Кему-квм (centos virt sig): 105.el7_2.4 (1.5.3)

libvirtd: 1.2.17

когда я говорю о драйверах virtio, я имею в виду, что xml-файлы libvirt сообщают о virtio как о шине.

  • Win показывает "Дисковое устройство Red Hat virtIO SCSI"

  • Linux сообщает о дисках как "00:06.0 Контроллер хранилища SCSI: Red Hat, Inc Virtio блочное устройство"

Обновление 2

  • Ранее я уже говорил, что однопотоковое перфорирование на окнах было неожиданно плохим. На самом деле это соответствует результатам, опубликованным здесь: соотношение 1:3 между собственной и Win VM в пропускной способности.

  • Это оставляет оба сценария с плохо масштабируемой проблемой: масштабирование 1:3 на хосте против 1:10 на виртуальных машинах

Что касается комментариев, я надеюсь, что в 7.3 улучшений, которые, согласно графикам релизов Red Hat, должны произойти в очень близком будущем (около 6 месяцев между выпусками).

Спасибо

0 ответов

Другие вопросы по тегам