Большой тест-сравнение серверных процессоров при сборке ядра Linux
Картинка для привлечения внимания.
Привет, друзья. Прошло ровно 3 месяца, как я живу на новом месте, — целый сезон, считай. Ну так вот. Через мои руки проходят сотни различных процессоров и платформ — в основном HP, терабайты оперативной памяти и петабайты жестоких дисков...
Одним из моих любимых тестов серверных железяк (да и не только), конечно же, является сборка ядра Linux. Видно, как успешно бы машина справлялась с типовой задачей собирать дистрибутивы линукса по-кругу и стоит ли вообще такая платформа своих денег. Так же, сборка линукса не требует сиюминутного решения, — оставляем железку молотить на ночь и уходим спать. А в свободное от сборки сорцов время сервер не должен много кушать.
Все тесты производились в оперативной памяти: дистрибутив CRUX с актуальными обновлениями, gcc 10.3.0, версия ядра на текущий момент linux 5.13.12. Дистрибутив загружался по сети (iLO) с распаковкой в tmpfs и работал из корневого tmpfs-каталога. Привет, booty.
https://www.voglea.com/20210820_081521.jpg
Например. Платформа HP DL360 Gen9: один процессор 2609v3, одна планка памяти, один блок питания. Подключена только материнская плата, подключено 5 из 7 кулеров — если отключить больше, то сервер будет повышать обороты оставшихся кулеров и ругаться (настраивается). Отключена даже корзина для дисков. ОС загружена и ничего не делает, находится в простое. Итоговое потребление составляет 34W. При тех же данных, потребление HP DL360 Gen8 составляло уже 45W — если у вас дорогое электричество, берите платформу посвежее, оно окупится. При установке второго процессора в Gen9 энергопотребление поднялось уже до 48W, но всё ещё в пределах полста — хороший показатель, ящитаю. Горит себе 50-ваттная лампочка и ладненько.
https://www.voglea.com/2021-08-13-164603_3440x1440_scrot.png
Теперь вы знаете, что, когда вы захотите себе настоящий сервер домой, он не будет много кушать.
Для проведения теста собираем linux 5.13.12 в том же tmpfs.
Первый тест, который бударажит умы всех детишек.
— Влияет ли объём оперативной памяти на скорость сборки ядра?
— Нет.
https://www.voglea.com/20210820_072754.jpg
https://www.voglea.com/2021-08-20-080406_3440x1440_scrot.png
https://www.voglea.com/2021-08-20-081952_3440x1440_scrot.png
Сервер HP DL360 Gen8, установлено два самых младших процессора 2609 (первой версии), установлено 24 планки памяти по 32GB, итоговый объём памяти 768GB.
real 9m44.000s
user 68m41.466s
sys 5m16.305s
https://www.voglea.com/20210820_072343.jpg
Оставляем 2 планки по 32GB по каждой на процессор. Результат в пределах погрешности.
real 9m39.926s
user 67m59.048s
sys 5m13.243s
По субъективным ощущениям я вам так скажу: это даже не затычка вместо процессора, это... Это просто заглушка. Защитная заглушка на сокет. Когда наблюдаешь за сборкой ядра, то ты буквально чувствуешь как оно в натяжечку выполняет каждый такт. Это ужасно. Но за то процессоры относительно дешёвые, $299 по рекомендованной цене Intel.
https://www.voglea.com/20210820_085417.jpg
https://www.voglea.com/2021-08-20-092502_3440x1440_scrot.png
Другой нюанс это рабочая частота памяти. В сервере 24 сокета под память 3-мя рядами. Просто посмотрите на картинку HP DL360 Gen9: сперва устанавливаем в беленькие, затем в чёрненькие, затем в синенькие сокеты. Суть в том, что когда мы ставим хотя бы одну планку в третий ряд, в синенький сокет, то сервер сразу сбрасывает рабочую частоту памяти. Была номинальная рабочая частота 2400, а станет 1600. Но сейчас речь идёт не о сервере, а о процессоре. Сам процессор младшей линейки вплоть до 2650 сбрасывает рабочую частоту памяти. Поэтому вместо 1866 мы имеем 800.
По личным ощущениям, ядро собирается на жёстком диске, тогда как в реальности все действия происходят в tmpfs.
Это даёт вам понять главное: сервер это ещё не значит круто или быстро. Зачастую приобрести десктопное железо может оказаться проще и дешевле, и гараздо эффективнее для решения задач, чем брать серверную платформу.
Реально из серверных фич, единственное, чем вы будете пользоваться:
- Удалённое включение / выключение сервера.
При сильном желании такое можно сколхозить самому для десктопов. Есть Wake-On-Lan, есть управляемые розетки, в конце концов.
- Удалённое монтирование ISO-образов дисков по http, т.е. сервер эмулирует CD-ROM как /dev/sr1 устройство и через веб-интерфейс iLO вы можете подключить любой ISO-образ для загрузки по http.
Частично решается через PXE, но не всё можно загрузить таким образом, словно это обычный CD-ROM.
- Через веб-интерфейс вы увидите всё, что происходит на мониторе на реальном железе.
Такое даже сколхозить будет не так просто.
- RAID
Другими серверными фичами, такими как рейд-контроллер, вы находясь в здравом уме пользоваться не станете, понимая, что у вас нет контроля над этим железом. Сегодня оно ВКЛ, а завтра оно ВЫКЛ. Даже при наличии супер-пупер рейд-контроллера я рекомендую перевести его в режим host bus adapter и продолжать пользоваться софтварным рейдом.
Если вы мечтали о сервере дома — скажем так, реальных киллер-фич у серверного железа перед декстопным почти что нет, и скорее всего при бытовом использовании сервера вы ими пользоваться не станете. Телебонькая локалхосты вы особо ничего не потеряли. Такие дела.
Конфигурация железа следующая:
- HP DL360 Gen9
- Процессоры пробуем все подряд, по два штуки
- Оперативная память 8 планок по 32GB 2400MHz HP SmartMemory
- Всё действие происходит в tmpfs
-
make defconfig && make -j$(nproc)
2x 2620v3 — $417.00
real 5m7.252s
user 50m40.552s
sys 4m45.624s
2x 2630v3 — $667.00
real 3m29.007s
user 87m21.086s
sys 6m37.888s
2x 2640v3 — $939.00
real 3m55.450s
user 50m30.410s
sys 4m44.376s
2x 2650v3 — $1166.00
real 3m19.920s
user 52m8.369s
sys 5m5.728s
2x 2660v3 — $1445.00
real 3m19.011s
user 51m52.841s
sys 5m7.123s
2x 2670v3 — $1589.00
real 2m53.634s
user 51m57.252s
sys 5m5.934s
2x 2680v3 — $1745.00
real 2m56.250s
user 51m54.851s
sys 5m8.006s
2x 2690v3 — $2090.00
real 2m51.973s
user 52m13.885s
sys 5m7.032s
2x 2690v4 — $2090.00
real 2m28.182s
user 49m13.461s
sys 4m54.381s
2x 2667v3 — $2057.00
real 3m53.953s
user 50m17.703s
sys 4m43.649s
2x 2667v4 — $2057.00
real 3m47.830s
user 47m54.207s
sys 4m35.314s
2x 2697Av4 — $2891.00
real 2m14.829s
user 49m18.552s
sys 4m58.253s
Взгляните на эти цифры. Где-то разницы вообще нет (2650v3/2660v3) при разнице в цене в 300 баксов, а где-то наблюдается явная деградация (2630v3/2640v3) при той же конфигурации железа. Не дайте себя обмануть. Большинству людей, которые покупают сервер — им эта самая серверная платформа не нужна. Она стоит космических денег, когда по цене одной только платформы можно собрать десктоп для тех же задач. Настроить софтварный рейд. Хочешь — возьми второй десктоп для резервирования. Как это обычно бывает: кадры решают. Решает системный администратор, чтобы система исправно работала, а не железка. Мне кажется, зачастую сервер покупают потому что это СЕРВЕР, а не потому, что он им реально нужен. И никаких реальных преимуществ, кроме разве что KVM-управления через веб-интерфейс, серверная платформа перед десктопами не даёт.
Какие процессоры рекомендовал бы лично я?
2609 — процессор, который ставить вредно. Такой сервер больше скушает электроэнергии, чем от него будет ощутимый выхлоп, и даже высокочастотная память не затащит: процессор сам занизит частоты.
2650 — с него начинаются честные частоты по памяти, сколько заявлено, столько вы и получите, только если вы не собираетесь использовать все 24 слота под память, в таком случае уже сама платформа снизит рабочую частоту памяти.
2680, 2690, 2667, 2697 — процессоры, начиная с которых имеет смысл рассматривать серверную платформу к приобретению. То есть, если вам нужен Сервер с большой буквы, то ставить что-то младше 2667 / 2680 не имеет смысла, иначе сервер вам на самом деле не нужен вовсе, лол.
Естественно, задачи разные, кто-то возьмёт 2609 с одной планкой памяти на 16гб чтобы собрать на нём NAS, — таких товарищей тоже знаю и решение одобряю.
Ну а чтоб и сервер, и чтоб «занидорага»... Честно, возьми десктоп и не майся ерундой.
https://www.voglea.com/20210820_095317.jpg
Ну а в финале нас ещё ждёт битва боссов, EPYCов против XEONов. =)