VMWARE ESXI 6.5. Улучшение NUMA.
В статье VMWARE ESXI 6.0. ВЛИЯНИЕ БАЛАНСИРОВКИ NUMA НА ПРОИЗВОДИТЕЛЬНОСТЬ. ОПТИМАЛЬНОЕ ЧИСЛО VPD. я тестировал работу технологии NUMA в VMware vSphere 6.0. В процессе тестов я выяснил, что существуют конфигурации, в которых производительность в приложениях, использующих многопоточность, существенно проседает. Например 4 сокета по 6 ядер это не то же самое, что и 6 сокетов по 4 ядра.
Так же я упомянул об усовершенствованиях работы NUMA в версии 6.5. В новой версии vSphere размер VPD зависит от количества физических ядер в сокете. В результате, vNUMA старается быть максимально похожей на NUMA.
И вот, обновив vSphere до актуальной версии, я решил протестировать как оно все обстоит на самом деле.
Конфигурация |
VPD |
CPU PhotoWorxx |
Копирование в памяти |
---|---|---|---|
12 (12 по 1) | 1 | 23900 | 42080 |
12 (6 по 2) | 1 | 26800 | 44600 |
16 (16 по 1) | 2 | 43900 | 77700 |
16 (8 по 2) | 2 | 44000 | 82000 |
16 (2 по 8) | 2 | 43600 | 80900 |
20 (20 по 1) | 2 | 49700 | 84500 |
20 (2 по 10) | 2 | 49900 | 83500 |
20 (4 по 5) | 2 | 49800 | 82400 |
20 ( 5 по 4) | 3 | 48800 | 72300 |
24 (24 по 1) | 2 | 53400 | 86000 |
24 (12 по 2) | 2 | 53300 | 86700 |
24 (6 по 4) | 2 | 53500 | 86300 |
24 (4 по 6) | 2 | 53000 | 83100 |
24 (3 по 8) | 3 | 24000 | 34700 |
24 (8 по 3) | 2 | 53300 | 86100 |
25 (25 по 1) | 2 | 53400 | 61000 |
32 (32по 1) | 2 | 52000 | 71800 |
32 (4 по 8) | 2 | 52000 | 85100 |
32 (8 по 4) | 2 | 52100 | 86000 |
36 (36 по 1) | 2 | 51000 | 76000 |
36 (12 по 3) | 2 | 50700 | 84300 |
36 (6 по 6) | 2 | 50700 | 86300 |
48 (48 по 1) | 2 | 46600 | 77300 |
48 (24 по 2) | 2 | 46300 | 81600 |
48 (12 по 4) | 2 | 46400 | 86700 |
У меня двух процессорный сервер, и, как видим, за исключением совсем уж диких конфигураций 20 ( 5 по 4) и 24 (3 по 8) балансировщик NUMA создает два узла. Что не может не радовать.
Для сравнения приведу в одной таблице значения по версиям 6.0. и 6.5.
Конфигурация | vSphere 6.0 | vSphere 6.5 | ||
---|---|---|---|---|
VPD | CPU PhotoWorxx | VPD | CPU PhotoWorxx | |
12 (12 по 1) | 1 | 26300 | 1 | 23900 |
12 (6 по 2) | 6 | 26800 | 1 | 26800 |
16 (16 по 1) | 2 | 43000 | 2 | 43900 |
16 (8 по 2) | 8 | 43000 | 2 | 44000 |
16 (2 по 8) | 2 | 43000 | 2 | 43600 |
20 (20 по 1) | 2 | 48600 | 2 | 49700 |
20 (2 по 10) | 2 | 49100 | 2 | 49900 |
20 (4 по 5) | 4 | 48900 | 2 | 49800 |
20 ( 5по 4) | 5 | 23000 | 3 | 48800 |
24 (24 по 1) | 2 | 53000 | 2 | 53400 |
24 (12 по 2) | 2 | 53000 | 2 | 53300 |
24 (6 по 4) | 6 | 53000/24500 | 2 | 53500 |
24 (4 по 6) | 4 | 53100 | 2 | 53000 |
24 (3 по 8) | 3 | 23600 | 3 | 24000 |
24 (8 по 3) | 8 | 53300 | 2 | 53300 |
25 (25 по 1) | 3 | 23900 | 2 | 53400 |
32 (32по 1) | 3 | 23113 | 2 | 52000 |
32 (4 по 8) | 4 | 51363 | 2 | 52000 |
32 (8 по 4) | 8 | 50666/23140 | 2 | 52100 |
36 (36 по 1) | 3 | 22700 | 2 | 51000 |
36 (12 по 3) | 12 | 50433 | 2 | 50700 |
36 (6 по 6) | 6 | 49000 | 2 | 50700 |
48 (48 по 1) | 4 | 44700 | 2 | 46600 |
48 (24 по 2) | 24 | 35800 | 2 | 46300 |
48 (12 по 4) | 12 | 46377 | 2 | 46400 |
Почему производительность памяти удваивается, когда кол-во vcpu становится больше numa cpu?
Не совсем понял о чем Вы. Производительность памяти удваивается когда ВМ “правильно” распределяется по нодам по сравнению с не оптимальной конфигурацией.