Мы переносим приложение ActivePivot на новый сервер (4 сокета Intel Xeon, 512 ГБ памяти). После развертывания мы запустили наш тест приложений (это сочетание больших запросов OLAP одновременно с транзакциями реального времени). Измеренная производительность почти в два раза медленнее, чем на предыдущем сервере, у которого есть аналогичные процессоры, но в два раза меньше ядер и в два раза меньше памяти.Как NUMA-архитектура влияет на производительность ActivePivot?
Мы исследовали различия между двумя серверами, и он кажется, что большая имеет архитектуру NUMA (неравномерная память). Каждый процессорный сокет физически близок к 1/4 памяти, но дальше от остальной части ... JVM, который запускает наше приложение, выделяет большую глобальную кучу, на каждом узле NUMA есть случайная доля этой кучи. Наш анализ состоит в том, что шаблон доступа к памяти довольно случайный, а ядра ЦП часто теряют время, обращаясь к удаленной памяти.
Мы следим за дополнительной информацией об использовании ActivePivot на NUMA-переключателях. Можем ли мы сконфигурировать кубы ActivePivot или пулы потоков, изменить наши запросы, настроить операционную систему?
При использовании numactl я бы рекомендовал использовать переключатель '--membind = nodes, -m nodes' дополнительно к' --cpunodebind = nodes, -N nodes', чтобы ограничить память этим узлом. В противном случае небольшая часть памяти обычно выделяется на иностранных узлах (даже с помощью '-XX: + UseNUMA') –