вторник, 29 марта 2011 г.

vSphere network test - vmxnet3, Jumbo Frames

Недавно было опубликовано тестирование производительности виртуального сетевого контроллера 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:

= 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 коммент.:

Отправить комментарий