Я пытаюсь запустить приложение erlang на openstack vm и получаю очень низкую производительность, и после тестирования я обнаружил, что что-то происходит с NUMA. Это то, что я наблюдаю в своем тесте.
Мой вычислительный хост с открытым стеком с 32 ядрами, поэтому я создал на нем виртуальную машину с 30 ядрами виртуальных ЦП, которая полностью поддерживает NUMA, когда я запускаю тест приложения Erlang на этой виртуальной машине, я получаю худшую производительность, но затем я создаю новую виртуальную машину с 16 ядрами виртуальных ЦП (в этом случае все мои процессоры виртуальных машин закреплены узлом Numa-0), и в этом случае результат теста был отличным.
на основе приведенного выше теста ясно, что если я оставлю виртуальную машину на одном узле numa, тогда производительность будет намного лучше, но когда я распространим ее на несколько зон numa, она ухудшится.
Но интересно то, что когда я запускаю одно и то же приложение erlang на «голом железе», тогда производительность действительно хорошая, поэтому пытаемся понять, почему то же самое приложение, работающее на виртуальной машине, не работает хорошо?
Есть ли какие-либо настройки в erlang для лучшего соответствия NUMA при работе на виртуальной машине?