Как стать автором
Обновить

Комментарии 10

Были взяты 64шт. CPU ядер с частотой 2,6 ГГц, выделенных на сервере ARM (SoC HUAWEI Kunpeng 920), и 28шт. CPU ядер с частотой 3,0 ГГц, выделенных на сервере x86

Т.е. для обеспечения паритета к 28 ядер интел надо 64 ядра АРМ? Да и как то непонятно, в общей сложности у вас указано что сервер то 2х64 ядра. т.е. 128 ядер АРМ против 28 ядер интел?

А мы сами должны догадаться про стоимость серверов и TCO и кол-во транзакций на единицу денежки

Тестирование 28шт. ядер на x86 и 64шт. на ARM проводилось отдельное (оно по сути и методике одинаковое с тем, что описано в этой статье) и его основной идеей являлось сравнить производительность решений с примерно одинаковой стоимостью (т.е. учитывался cost-performance). ARM процессор Kunpeng 920 не поддерживает одновременную многопоточность (SMT) в отличие от процессоров Xeon Scalable c HT и в целом для текущего теста был взят open-source PostgreSQL. В целом производительность Kunpeng 920 выпущенного в 2019г. до сих пор является одной из самых лучших и не уступает другим решениям на рынке. Вот для сравнения отчеты SPECrate2017_int с результатами тестирования сервера с Intel Xeon Gold 6240 https://www.spec.org/cpu2017/results/res2019q2/cpu2017-20190415-11976.html и Huawei Kunpeng 920 7260 https://www.spec.org/cpu2017/results/res2020q2/cpu2017-20200529-22566.html

PostgreSQL очень хорошо масштабируется на HT-ядрах.
"дополнительное" HT-ядро может добавлять 70% (см. излом на https://elibsystem.ru/node/490).

Т.е. очень грубо, для PostgreSQL 28 ядер с HT2 эффективно будет под 48 ядер без HT.

Умножать ядра на частоту нельзя, но когда очень хочется, то для Intel 48 "эффективных ядер" x 3 ГГц = 144 эффективных ГГц на сервер, а ARM 64 x 2.6 ГГц = эффективных 166 ГГц.

Ну какую-то такую разницу и видно в сравнении производительностей.

А prefetch зачем на нём выключали? Он так плох, что портит результаты?

Настройку CPU prefetch рекомендуется отключать скорее из-за характера нагрузки. Т.к. изначально планировалось запускать приложение, которое интенсивно работает с памятью и также много производит выборки данных случайным образом, то настройку рекомендуется отключать, т.к. иначе наблюдается некоторая потеря производительности. Скорее всего в условиях обычной эксплуатации серверов, т.е. вне задачи запуска benchmark теста вроде pgbench, отключать prefetcher не надо было бы и производительность была бы лучше с включенной настройкой CPU prefetch.

И всё же графика с включенным CPU prefetch не хватает. Интересно, а это prefetch всё же данных, как подразумевает ваш комментарий, или кода? Нет строчки из инструкции?

Как верхний и нижний графики соотносятся друг с другом ? Желтый цвет вы специально выбрали, чтобы мы глаза ломали ?

Я вот подумал - и понял, что в сравнении не хватает современных процессоров AMD, с соответствующим подсчетом TCO.

P.S. Не подумайте плохого - я рад, что ARM таки прогрызает себе дорогу в серверные продакшн-решения. Но хочу всё знать.

НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий