Недавно было опубликовано тестирование производительности виртуального сетевого контроллера vmxnet3 -vSphere network test - vmxnet3.
Сегодня - дополнения после разбирательств с активацией Jumbo Frames:
Благополучно разобравшись с JF (всё указывает на то, что это всё же какая-то бага в настройках VMXNET3), продолжил тестирование.
Итак, часть вторая, переработанная и дополненная…
Стенд всё тот же: и хост, и тестовые виртуальные машины – разница с первой частью только в увеличении MTU второго (кадры ethernet) и третьего (пакеты IP) уровней (включаются, соответственно, командой "netsh interface ipv4 set subinterface "<10Gb>" mtu=9000" и добавлением параметрара MTU в ветку HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<10Gb>\
- впрочем, коллеги в дискуссии по предыдущему отчету откопали-таки, что параметр реестра добавляется «сам», если команда «netsh … … …» применяется с параметром «store=persistent».
Теперь собственно, сами тесты. Повторять я решил тесты №№3, 4, и 5 – как наиболее интересные. Напомню, что
№3 – это 1,2,4 и 8 тредов на одном vCPU;
№4 – 2,4 и 8 тредов на двух vCPU между одной парой «src-IP – dest-IP»;
№5 – 2,4 и 8 тредов на двух vCPU и между двумя парами IP.
№3 – это 1,2,4 и 8 тредов на одном vCPU;
№4 – 2,4 и 8 тредов на двух vCPU между одной парой «src-IP – dest-IP»;
№5 – 2,4 и 8 тредов на двух vCPU и между двумя парами IP.
№3:
= ntttcpr -m 1(2,4,8),0,192.168.1.58 -a 16 -l 256K -n 100000 -f s16.txt =
======================== 1, 2, 4, 8 === -a 16 ==================================
Throughput(Mbps)=9853.56 CPU=38.1% Cycles/Byte=1.48 Interrupts/Sec=22318
Throughput(Mbps)=12778.42 CPU=39.5% Cycles/Byte=1.19 Interrupts/Sec=15851
Throughput(Mbps)=15625.43 CPU=44.5% Cycles/Byte=1.09 Interrupts/Sec=12986
Throughput(Mbps)=16239.71 CPU=44.1% Cycles/Byte=1.04 Interrupts/Sec=9758
=========================================================================
№4:
= ntttcpr -m 1(2,4),0,192.168.1.58 1(2,4),1,192.168.1.58 -a 16 -l 256K -n 100000 -f s16m.txt =
======================== -, 2, 4, 8 === -a 16 === -m IP IP ======================
-
Throughput(Mbps)=11836.07 CPU=39.7% Cycles/Byte=1.29 Interrupts/Sec=16122
Throughput(Mbps)=15048.95 CPU=47.3% Cycles/Byte=1.21 Interrupts/Sec=17219
Throughput(Mbps)=16300.43 CPU=46.5% Cycles/Byte=1.10 Interrupts/Sec=11597
======================================================================
№5:
= ntttcpr -m 1(2,4),0,192.168.1.58 1(2,4),1,192.168.1.59 -a 16 -l 256K -n 100000 -f s16mm.txt =
======================== -, 2, 4, 8 === -a 16 === -m IP1 IP2 ====================
-
Throughput(Mbps)=12963.54 CPU=43.8% Cycles/Byte=1.30 Interrupts/Sec=19375
Throughput(Mbps)=15019.10 CPU=48.0% Cycles/Byte=1.23 Interrupts/Sec=17054
Throughput(Mbps)=16153.00 CPU=44.9% Cycles/Byte=1.07 Interrupts/Sec=10771
======================================================================
Что тут скажешь – неплохо выстрелило. Почти вдвое лучшие показатели по сравнению с тестами без использования JF.
Причём загрузка vCPU0 (на который по-прежнему приходится львиная доля работы) вполне ожидаемо снизилась – теперь даже на максимальных показателях производительности она болтается в районе 75-80 %, не выходя на прямую линию на 100%-й отметке (как это было на стандартных сетевых пакетах).
Ну и сохраняется примерно такая же «мультипроцессоронезависимость» - тесты с раскладкой тредов по ядрам не дают какого-либо заметного преимущества.
Для сравнения же - традиционный сравнительный прогон на «младшем» хосте C2Q:
№3:
= ntttcpr -m 1(2,4,8),0,192.168.1.58 -a 16 -l 256K -n 100000 -f s16.txt =
======================== 1, 2, 4, 8 === -a 16 ===============================
Throughput(Mbps)=3174.32 CPU=29.4% Cycles/Byte=4.20 Interrupts/Sec=6512
Throughput(Mbps)=4363.88 CPU=42.1% Cycles/Byte=4.37 Interrupts/Sec=5607
Throughput(Mbps)=4791.96 CPU=45.2% Cycles/Byte=4.28 Interrupts/Sec=3288
Throughput(Mbps)=4379.16 CPU=49.0% Cycles/Byte=5.08 Interrupts/Sec=2494
======================================================================
Такое впечатление, что 8 тредов на vCPU этой конфигурации уже стало многовато…
№4:
= ntttcpr -m 1(2,4),0,192.168.1.58 1(2,4),1,192.168.1.58 -a 16 -l 256K -n 100000 -f s16m.txt =
======================== -, 2, 4, 8 === -a 16 === -m IP IP ======================
-
Throughput(Mbps)=4063.68 CPU=48.3% Cycles/Byte=5.39 Interrupts/Sec=5679
Throughput(Mbps)=4383.17 CPU=52.7% Cycles/Byte=5.45 Interrupts/Sec=3346
Throughput(Mbps)=4384.87 CPU=64.5% Cycles/Byte=6.66 Interrupts/Sec=2695
======================================================================
А тут как будто многоножка путается в своих лапах – попытки расфасовать несколько тредов по двум vCPU дают результаты не лучше предыдущего теста.
№5:
= ntttcpr -m 1(2,4),0,192.168.1.58 1(2,4),1,192.168.1.59 -a 16 -l 256K -n 100000 -f s16mm.txt =
======================== -, 2, 4, 8 === -a 16 === -m IP1 IP2 ====================
-
Throughput(Mbps)=3859.31 CPU=47.3% Cycles/Byte=5.56 Interrupts/Sec=5336
Throughput(Mbps)=4409.23 CPU=54.4% Cycles/Byte=5.60 Interrupts/Sec=3211
Throughput(Mbps)=4411.61 CPU=64.7% Cycles/Byte=6.66 Interrupts/Sec=2734
======================================================================
Ну и тут без особой доблести обошлось – практически как и с одной парой IP…
Справедливости ради нужно сказать, что большие пакеты и здесь показывают лучшую производительность, нежели без оных.
* * *
В довершение ко всему хотел бы выполнить одно обещание, данное коллеге Yuri - проверить данный тест на связке из двух Windows 7.
Все условия тестирования прежние (включая, пардон за каламбур, включенные JF и IP MTU=9000), за исключением ОС – вместо W2k8R2eeSP1 гонялись W7Profx64
(к сожалению по некоторым причинам пока без SP1).
Гонялся «базовый» тест - №3 (остальное среди ночи как-то заломало, если честно) – думаю, для оценки этого должно хватить:
№3:
= ntttcpr -m 1(2,4,8),0,192.168.1.58 -a 16 -l 256K -n 100000 -f s16.txt =
======================== 1, 2, 4, 8 === -a 16 ===============================
Throughput(Mbps)=8575.92 CPU=31.9% Cycles/Byte=1.43 Interrupts/Sec=16623
Throughput(Mbps)=10506.64 CPU=36.8% Cycles/Byte=1.34 Interrupts/Sec=14439
Throughput(Mbps)=13751.71 CPU=44.0% Cycles/Byte=1.23 Interrupts/Sec=13917
Throughput(Mbps)=16202.18 CPU=43.9% Cycles/Byte=1.04 Interrupts/Sec=8128
======================================================================
Как видим, результаты мало чем отличаются от таковых у w2k8r2. Почему у коллеги на его монстроОптеронах такие маленькие и смешные трафики – не знаю: «отсюда плохо видно»(с)моё.
С уважением,
Umlyaut.
0 коммент.:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.