Влияние балансировки конфигурации памяти процессоров Intel Xeon Scalable, AMD Epyc на производительность

Механизм чередования (Interleaving) обращений к модулям памяти встроен в современные процессоры как компании Intel (E5, Scalable), так и AMD (EPYC). Он предназначен для уменьшения влияния задержек в обращениях к оперативной памяти за счет распараллеливания операций между каналами.

Как мы помним - контроллер памяти теперь встроен в процессор и имеет несколько независимых каналов. Число их в различных сериях процессоров различно: 4 в процессорах Intel Xeon E5: 6 в Intel Xeon Scalable; 8 - в AMD EPYC.

Насколько важен механизм чередования и как сильно он влияет на производительность сервера в целом? Можно услышать мнение, что это влияние практически незаметно, но это не так. В значительной степени не так! 
К сожалению, непросто найти "материальное подтверждение" теоретическим рассуждениям, поскольку "оно как-то понятно само собой" и конкретными тестами-замерами никто не заморачивается.

Помощь в понимании значения технологии пришла несколько сбоку - в одном из выступлений на Intel Innovation Day 2018, компания Mail.ru рассказывала о методике выбора оптимальной вычислительной платформы для своих нужд. В масштабах компании - а это тысячи серверов в год - даже небольшое отклонение от идеала может вылиться в кругленькую сумму дополнительно или неэффективно затраченных средств. Надеюсь, коллеги из Mail.ru не сильно обидятся за заимствование слайда и результатов их исследований.

Mail.ru испытывал несколько конфигураций серверов, замеряя их производительность в РЕАЛЬНЫХ ЗАДАЧАХ И ПРИ РЕАЛЬНОЙ ЗАГРУЗКЕ - что дает, в отличие от синтетических тестов, более реалистичные результаты.

В контексте предмета нашего рассмотрения, интересны результаты 2 и 3 конфигураций - поскольку коллеги из Mail.ru намеренно сравнивали идентичные 2-процессорные конфигурации с одной лишь разницей - в первом случае (строка 2) было установлено 4 модуля памяти по 32Гб - как часто привыкли конфигурировать во многих компаниях-сборщиках серверов; во втором случае (строка 3) задействовали вдвое больше каналов памяти, установив 8 модулей по 16Гб. Частота работы модулей, само собой, одинакова.

Тестирование производительности серверов компанией Mail.ru

Обратимся к цифрам.

Разница в цене одного модуля 32Гб и альтернативы - двух модулей по 16Гб на момент тестирования была, но ее размер не был драматичным (колонка "Cost")

При этом разница в производительности серверов (подчеркиваю - не отдельно вырванной подсистемы оперативной памяти, а сервера в целом!) составила 12,5% !!! (колонка "Perf")
Вот так - практически, бесплатно (*), только за счет грамотного использования уже встроенной в систему технологии, получаем существенную прибавку вычислительной мощности сервера!
Увеличение более, чем на 10% производительности равносильно установке следующих по производительности, более дорогих процессоров в сервер.

Почему многие стараются заполнять необходимый объем оперативной памяти за счет более емких модулей?
- По привычке, выработанной во времена, когда количество модулей не влияло на производительность, а количество слотов памяти было ограничено.
- В расчете на будущий апгрейд, который не наступает никогда! Если и доходит до увеличения объема оперативной памяти - к тому времени выгодней становится полная замена памяти на модули большего объема.

---

(*) На момент написания заметки разницы в цене модулей 2х4Гб - 8Гб, 2х8Гб - 16Гб практически не было. В паре 2х16Гб - 32Гб сохранялась разница примерно в 10% в пользу 32Гб модуля.