Конфигурация технологии Erlang NUMA

Я пытаюсь запустить приложение erlang на openstack vm и получаю очень низкую производительность, и после тестирования я обнаружил, что что-то происходит с NUMA. Это то, что я наблюдаю в своем тесте.

Мой вычислительный хост с открытым стеком с 32 ядрами, поэтому я создал на нем виртуальную машину с 30 ядрами виртуальных ЦП, которая полностью поддерживает NUMA, когда я запускаю тест приложения Erlang на этой виртуальной машине, я получаю худшую производительность, но затем я создаю новую виртуальную машину с 16 ядрами виртуальных ЦП (в этом случае все мои процессоры виртуальных машин закреплены узлом Numa-0), и в этом случае результат теста был отличным.

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

Но интересно то, что когда я запускаю одно и то же приложение erlang на «голом железе», тогда производительность действительно хорошая, поэтому пытаемся понять, почему то же самое приложение, работающее на виртуальной машине, не работает хорошо?

Есть ли какие-либо настройки в erlang для лучшего соответствия NUMA при работе на виртуальной машине?


person Satish    schedule 07.02.2020    source источник


Ответы (1)


Возможно, Erlang не может правильно определить топологию процессора вашей виртуальной машины.

Вы можете проверить топологию процессора с точки зрения виртуальной машины, используя lscpu и lstopo-no-graphics из пакета hwloc:

#lscpu | egrep '^(CPU\(s\)|Thread|Core|Socket|NUMA)'
#lstopo-no-graphics --no-io

Если это выглядит неправильно, рассмотрите возможность перестроения виртуальной машины с использованием опций OpenStack, таких как hw:cpu_treads=2 hw:cpu_sockets=2, как описано на странице https://specs.openstack.org/openstack/nova-specs/specs/juno/implemented/virt-driver.-vcpu-topology.html

На стороне Erlang вы можете поэкспериментировать с параметрами Erlang VM +sct, +sbt, как описано в http://erlang.org/doc/man/erl.html#+sbt

person kenstir    schedule 07.02.2020
comment
Спасибо за подсказку, я попробую и вернусь к вам.. - person Satish; 08.02.2020