Я провожу ряд тестов, чтобы понять, почему некоторые из наших рабочих нагрузок создают действительно плохой "пользовательский опыт" с деятельность, связанная с БД.
У нас есть сервер dl160g9 с Контроллер B140i (4 диска LFF 7.2k об / мин). хозяин является Centos 7, механизм виртуализации квм, версия 105.el7_2.4 (1.5.3) из centos virt sig. Диски толстые тома LVM на верхней части фейк-рейд 5 генерируется контроллером b140i. настроен установлен для выступление (настройка виртуального гостя не так сильно меняется).
Мы бегаем как win, так и linux виртуальные машины. В любом случае хранилище локальное, прикрепленный к ВМ через virtio с участием cache = none и io = родной.
Поскольку наши файлы 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
64-разрядная виртуальная машина Windows 10 Pro полученные результаты:
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 плохо масштабируется, win (и соответствующие драйверы virtio) кажутся полным беспорядком даже в 1 потоке. Хотя я ожидал некоторых накладных расходов, люди получили лучшие результаты Вот
Конечно, win 10 является новым и поддерживается только последними (117) драйверами, но win 8.1 дает аналогичные результаты (опущено, поскольку этот пост становится большим).
Я открыт для любых документов или предложений, которые могут указать мне правильное направление: я знал, что cache = none, необработанного LVM и правильного настроенного ADM было достаточно для получения хороших результатов.
ядро (стандартное): 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
qemu-kvm (centos virt sig): 105.el7_2.4 (1.5.3)
libvirtd: 1.2.17
Когда я говорю о драйверах virtio, я имею в виду, что файлы libvirt xml сообщают о virtio как о шине.
Win показывает "Дисковое устройство Red Hat virtIO SCSI"
linux сообщает о дисках как «00: 06.0 SCSI-контроллер хранилища: блочное устройство Red Hat, Inc Virtio»
Ранее я говорил, что производительность одного потока в Windows была неожиданно плохой. Это действительно соответствует опубликованным результатам Вот: соотношение пропускной способности между собственной виртуальной машиной и виртуальной машиной Win 1: 3.
Это оставляет оба сценария с серьезной проблемой масштабирования: масштабирование 1: 3 на хосте против 1:10 на виртуальных машинах.
Согласно комментариям, я надеюсь, что в версии 7.3 будут улучшения, которые, согласно Red Hat графики выпуска должно произойти в очень близком будущем (около 6 месяцев между выпусками).
Спасибо