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

Throttling в процессорах — инволюция. Зеленые против Красных

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров8K
Всего голосов 23: ↑22 и ↓1+29
Комментарии31

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

В следующем поколении добавят квир-ядра. Вот ягуар уже переформатировали

Я не знаю как быть тогда. Переходить на Эльбрус или китайцы сделают копию старой серии. Но без опции "выключить зелень" жить нельзя даже на малой нагрузке

Так уже давно ввели, называются E-cores. Работают на треть ставки, мешают планировщику и нормальным ядрам, в медиа преподносятся как лучше что случалось с процессорами, при том что альтернативные архитектуры состоящие полностью из нормальных ядер выигрывают конкуренцию, но руководство готово отказаться от чего угодно (даже от гипертрединга) но только не от них.

Аналогия кстати пугающе точная выходит.

Скоро эффективный менеджмент введёт kpi на https://wiki.greensoftware.foundation/8507aaaaa0774086b7d5173b1eaafbd5

Там пока ещё даже паттернов нет но зато горячее желание получить деньги на доброе дело спасти мир

И будет как борьба с шумом когда полеты ИЛ-82 запретили на западе а то соловьи глохли

Ил-62

А хотите еще грузик на весы докину?

Конфигурация сервера заданная в конфигураторе(Lenovo, Dell, HP) при составлении заказа у вендора Это еще один невидимый лимит который не позволит превысить определенный временной и тепловой потолок.... и даже выставив Max Performance и выкрутив все остальное он реально не поднимется выше лимита конфигурации - как минимум на существенное время а как максимум Вообще.....

Словили такое на Ленового привезя серваки по конфигурации клиента который посчитал что он ТАК сэкономит..... два Идентичных по основным параметрам сервера, но в них разные БП разные вентиляторы и Видимо разные внутренние параметры в UEFI - Один MaxPerformance Второй "Max зеленый" - при этом ни тот ни другой не нагружаются по БП даже на 40% и имеют абсолютно одинаковые параметры по настройке, но тот который был MaxPerformance реально почти в 3 раза отзывчивее и раза в 1,5 быстрее...

Не знал что уже все так плохо. Видимо скоро разогнанный самосбор будет хорошим бизнесом

Так «для 1с» уже давно предлагают на разных хостингах разогнанные десктопные процы. На текущий момент топовый конфиг это 7950x3d и нвме-диски.

Ну это не маштабируемое решение. Плюс наши конфигурации параллелят фоновыми заданиями все что можно. Типовые где этого почти нет да только повышением частоты спасать

На бытовых сериях уже лет пять есть настраиваемый TDP. Вполне логично, что и в серверный отдел это должно было перекочевать.

Спасибо за материал!

Если Вы решили покупать новый сервер, поизучайте вопрос как процессор будет вести в режиме малых нагрузок и можно ли выключить зеленые настройки

Вообще, все эти настройки уже были, когда я ~15 лет назад покупал сервера, так что старых серверов это тоже касается, ц-стейты это вообще баян. По идее, если вы кровавый ынтерпрайз, то за вас их должен был выставить ваш интегратор. Ну либо если вы в розницу у приличной конторы покупаете.

Раньше все отключалось через ОС. Сейчас сбалансированные режимы это запрещают. Нужно только через Биос.

Плюс появилась архитектурная шиза когда на на низких нагрузках ни одно ядро не поднимает частоту. Xeon реально лагает с частотой 800мегагерц

Я раньше имел проблемы в сбалансированных режимах только на высоких нагрузках сейчас уже на низких

Шиза - это Windows. Но и на ней я глазами видел внутренние настройки scheduler-а или governor-а, но не лез.

На Linux вся эта тема с schedulers/governors -- темный лес, но он хотя бы есть на карте. Вот практическое пособие от Dell уровня "на отшибись".

Вот, вроде, хорошие заметки с поля сражений о throttling в целом: http://support.fccps.cz/industry/pwr/p-states.htm

Про зеленых, т.е. голубых вы рассказали. А как дела все же с красными?
Epyc довольно часто стал всплывать в обсуждениях.

да также - это не от проца зависит, а от регулирования со стороны питания и UEFI, а это отдано на откуп вендорам - у Того же Lenovo что на XEON что на EPYC всё примерно одинакового.....

у ASRock - вот такого нет там мамы попроще, но там свои грабли(оcобено на высоких TDP - сказывается бюджетность). Gigabyte упираются в Durability и тоже не перегибают с зеленкой - но у них своеобразная логика и они тоже пестрят особенностями....

у совсем китайцев сборная солянка и бывает всякое... но т.к. это дороже обычно у китайцев зеленка по минимуму и только то что есть в OpenSource UEFI....

У EPYC чиплетный дизайн и там все, немного по другому. Там TDP выставляется настройкой в BIOS которая доступна пользователям суммарно на все чиплеты, но реально распределение TDP между чиплетами может быть неравномерное и контроль над ним напрямую пользователям не доступен. Есть два режима:

  1. Максимальная производительность каждого отдельного ядра. В этом случае у каждого ядра будет своя частота и свой предел по частоте, но Target-TDP на чиплетах будет примерно одинаковый.

  2. Одинаковая производительность каждого ядра. В этом случае частоты будут совпадать и производительность будет предсказуема, но TDP чиплетов пойдет в разнос. В реальности для производительности используют режим 1, за исключением систем realtime и сложных параллельных расчетов на CPU. Это позволяет получить суммарно большую производительность за счет оптимизации TDP, т.к. процессор будет сильнее разгонять только те ядра, которые выделяют меньше тепла, когда как, в случае 2 все ядра работают со скоростью самого медленного)

Подозреваю, что вендоры могут ограничивать верхний предел TDP, но, по идее, если процессор поддерживается в списке совместимости, не должны ставить этот предел меньше чем TDP процессора по-умолчанию.

Что касается стратегии оптимизации частоты, то, EPYC похоже старается всегда держать одно из ядер чиплета в boost режиме или около того.
Вот, например, частоты ядер в idle-режиме (1-2% суммарно нагрузка на EPYC 7773X):

cpu MHz		: 3249.834
cpu MHz		: 3249.411
cpu MHz		: 3249.368
cpu MHz		: 3249.011
cpu MHz		: 3248.620
cpu MHz		: 3248.583
cpu MHz		: 3248.553
cpu MHz		: 3248.393
cpu MHz		: 3248.323
cpu MHz		: 3248.262
cpu MHz		: 3248.098
cpu MHz		: 3248.090
cpu MHz		: 3248.080
cpu MHz		: 3248.041
cpu MHz		: 3247.848
cpu MHz		: 3247.638
cpu MHz		: 3247.119
cpu MHz		: 2803.408
cpu MHz		: 2779.103
cpu MHz		: 2763.790
cpu MHz		: 2762.982
cpu MHz		: 2670.299
cpu MHz		: 2598.984
cpu MHz		: 2598.156
cpu MHz		: 2597.341
cpu MHz		: 2596.515
cpu MHz		: 2596.277
cpu MHz		: 2596.051
cpu MHz		: 2595.767
cpu MHz		: 2594.446
cpu MHz		: 2594.407
cpu MHz		: 2594.081
cpu MHz		: 2593.495
cpu MHz		: 2592.366
cpu MHz		: 2590.921
cpu MHz		: 2590.251
cpu MHz		: 2586.464
cpu MHz		: 2532.200
cpu MHz		: 2380.581
cpu MHz		: 2347.828
cpu MHz		: 2196.027
cpu MHz		: 2180.941
cpu MHz		: 2165.977
cpu MHz		: 2163.644
cpu MHz		: 2160.309
cpu MHz		: 2158.444
cpu MHz		: 2156.351
cpu MHz		: 2155.240
cpu MHz		: 2151.560
cpu MHz		: 2129.830
cpu MHz		: 2127.265
cpu MHz		: 2124.286
cpu MHz		: 2096.770
cpu MHz		: 2091.996
cpu MHz		: 2019.602
cpu MHz		: 2012.054
cpu MHz		: 1866.864
cpu MHz		: 1834.021
cpu MHz		: 1823.142
cpu MHz		: 1821.874
cpu MHz		: 1821.682
cpu MHz		: 1820.581
cpu MHz		: 1819.067
cpu MHz		: 1808.081

В общем, я думаю, что там еще виновата операционная система. Зная, что процессоры любят понижать частоты для экономии энергии, она старается разбрасывать активные потоки равномерно по всем ядрам. В результате, ни одно ядро не загружено полностью и частоты остаются низкими. Это неизбежно скажется на скорости выполнения каждой отдельной задачи, и latency вырастет, несмотря на то, что система практически не загружена. Тут надо или отучать ОС от этого, любо процессору запрещать сильно понижать частоты. Но, чем быстрее процессор реагирует на появление нагрузки изменяя частоты вверх, тем меньше это вредит latency. EPYC в этом плане, хорош тем, что практически мгновенно boost-ит то ядро, где есть нагрузка, и, постепенно понижает частоту, если нагрузка пропадает. Но, у EPYC тоже есть косяки и, изменение частот шины памяти, например, не рекомендовано, и, практически всегда, отключено на практике.

К сожалению, функционал администрирования ОС по энергосбережению в ЦП сильно лагает за появлением новых процессоров, и, сильно отличается от производителя к производителю. Потому, производители ЦП вынуждены зашивать все эти настройки в BIOS, чтобы ОС могли работать на этих ЦП, даже, если они про их внутреннюю кухню энергосбережения ничего не знают.

а можете тыкнуть линком на почитать про переключение этого режима?

В основном это описано тут:
https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/amd-epyc-7003-tg-workload-57011.pdf
Вся Chapter 2 посвящена настройкам BIOS касающихся производительности и энергосбережения.
Переключение этого режима описано в 2.3.2. Что забавно, режим работы дающий максимальную суммарную производительность называется:
Performance Determinism: Power
Второй режим:
Performance Determinism: Performance (default for most OPNs):: Ensure consistent performance levels across a large population of identically-configured CPUs by throttling some CPUs to operate at a lower power level.
Подразумевает троттлинг тех ядер, которые работают "слишком быстро и меньше греются" чтобы отдать TDP в пользу тех ядер, которые "сильно греются и работают медленно", чтобы немного их разогнать. И, это режим по-умолчанию.

А вообще, там, прямо в документе, под разные нагрузки есть рекомендации, какие надо выбирать настройки, что очень удобно.

Зная, что процессоры любят понижать частоты для экономии энергии, она старается разбрасывать активные потоки равномерно по всем ядрам. В результате, ни одно ядро не загружено полностью и частоты остаются низкими. Это неизбежно скажется на скорости выполнения каждой отдельной задачи, и latency вырастет, несмотря на то, что система практически не загружена. Тут надо или отучать ОС от этого, любо процессору запрещать сильно понижать частоты.

Потому что у инженеров процессоров и плат нет четкого видения. Возьмем например P States в серверах Lenovo

С одной стороны они кругом ограничивают влияние операционной системы С другой стороны сами не дают решения - куда должен идти поток задач. Ну допустим по ядрам - держим одно ядро на высокой частоте, остальные спящие. Но этого нет в Lenovo в режиме

  • Efficiency – Favor Performance (default): Maximize the performance/watt efficiency with a bias towards performance. It is the favored mode for Energy Star certification, EU Lot 9, and is comparable to Intel Optimized Power Mode (OPM).

там что попадет на ядро то и обрабатывается. В виртуализации можно этим поиграть - поставить виртуальную машину на одно ядро, и там из-за того что работы на ядро будет больше действительно частота ядра будет увеличиваться. В итоге нам предлагают подстраиваться под процессор, а не наоборот. ACPI уже Legacy а вместо него пара невменяемых стандартов

P-state в Lenovo

  • Autonomous (Default)

    All CPU P-state management is handled automatically in the background without any OS intervention.

  • Cooperative without Legacy

    UEFI does not provide legacy P-States. OS provides hints to the processor’s PCU on the desired P-state min / max levels. Requires Windows Server 2016 and Linux kernel v4.2 and higher. PCU runs in Autonomous mode until the OS sets the desired frequency.

  • Cooperative with Legacy

    UEFI leaves the legacy P-states interface initially enabled until/if later an OS that is aware of Intel Hardware P-states (HWP) native mode sets the bit. Legacy P-sates will be used until OS sets the HWP native mode. After that, P-states will switch to same behavior as “Cooperative without Legacy”.

  • Legacy

    Legacy control mechanisms currently implemented for systems with processors prior to the Intel Xeon Scalable Processor codenamed Skylake. Uses standard ACPI interface. Use for applications which benefit from OS level power controls.

  • None

    No ACPI table entries for P-states are created. P-states are disabled. Use this setting to minimize latency caused by P-state transitions.

С Красными ситуация сложная.

С одной стороны раньше для игроманов специально делали линейки для разгона. И для бизнеса например xeon десятилетней давности вполне устраивал для нагруженной базы 1с в 5 терабайт все десять лет.

Просто сейчас началась архитектурная шиза и фальсификация понятия производительность. Вместо того чтобы давать производительность по вызову - вендоры решили за меня решать когда мне эта производительность нужна.

Пока в мягкой форме путая в куче параметров. Потом наверное перемычку турбо где нибудь сделают или вообще уберут

В таких случаях играя по правилам можно года три протянуть, и организовывать сопротивление

  • Отказ от виртуализации - это крадёт производительность на всех уровнях

  • Продлевать жизнь старому и проверенному

  • Я думаю в Китае запустят свою линейку на старой платформе. Когда-то ведь не только Интел и amd были но и cyrix

  • Позорить производителей серверов на xeon сравнивая из с desktop

  • Собирать отечественное убирая всю зелёную шизу

  • Крупные игроки в азии закажут клоны наверняка. Вот например недавно отечественные принтеры видел. Сборка на уровне плат наша архитектура старая коника по лицензии

В Китае вполне еще используют наследие VIA. На их разработках Zhaoxin делает свои х86 процессоры.

Тут половина статьи как будто строится на том, что автору все равно, либо неизвестен термин "Total Cost of Ownership" (TCO). Да, за ним за прошедшие годы большая погоня, потому что это энергопотребление, тепло и отвод тепла в ДЦ. С точки зрения метафорного пилота, которому все равно на потреблееие двигателя, я понять негодование могу.

А чего не хватает, так это понимания, что помогло и в какую сторону надо с такой нагрузкой двигаться. Если я правильно понимаю, в данном случае накопали по мануалу все похожие настройки и дружно их рубанули? Тут интересно бы поэтапно на тестовом стенде, одну за другой выключать. А потом еще перебрать комбинацию из топ-3 с неизменной группой не-топ-3, чтобы плюс-минус иметь представление, что больше всего влияет на производительность, а что на нем и энергопотреблении при прочих равных не сказывается.

По поводу вендоров, а это касается и взаимодействия с ОС, больше всего Windows: мы тут магию делаем, но вам не скажем, какую. Да, с одной стороны сложность растет, с другой нет ни открытых прошивок (понадеемся на AMD openSIL), ни человеческой документации, чтобы проследить можно было причиноследственные связи от процессора-прошивка-ОС. Но вендорам это удобно: не фиксированных затрат. Надо больше перформанса? Платите нашей поддержке за "покруче" или вот контакт продажника, давайте мы вам мощнее систему предложим? Где-то в стороне находятся консультанты, которые за копеечку соптимизируют вам систему.

Когда Вы про "Total Cost of Ownership" (TCO) рассуждаете возникает вопрос а раньше чем плохо было? Бы acpi которым можно управлять со стороны ОС . Включил выключил когда надо. Теперь по acpi пишут legacy

Что сейчас почти все зелёные режимы подразумевают либо игрнор ос либо пишите зелёный софт который сам выбирает горячие ядра

Ну ладно человеки ленивые будут вырубать в ос high perfomance ну тогда сделайте проц по нормальному. Не 800 мегагерц на низах тотальный и не душить на верхах. А по умному

Вот раньше была модная вещь hyperthreading

Визуально удваивал core в ОС при включении. Вот сделайте скрытые горячие и холодные ht сущности а ОС будет видеть одно ядро из двух половинок вторая подключится на максимуме

Но подобных подходов я не вижу. Я вижу по тестам что рекомендуемый зелёный Favor perfomance работает по частоте 20 летней давности. И ему похер на настройки ОС и производительность на низах

А сейчас Зелёный переход превратился в Зелёный приход

работает по частоте 20 летней давности

Уже практически 25. Вы писали почти строго между 25 летней годовщиной анонсов Pentium III-733 и Pentium III-800 :-) .

проблема в конфликте между стабильностью, CSAT и TCO - когда влияние от попытки понизить TCO роняет и CSAT и стабильность то вопрос потерь бизнеса может быть не сопоставим с экономией...

так что вся суть статьи в том что крутилки этих в целом полезных механизмов не доступны, даже в кровавом Энтерпрайзе.....

Делать нужно хорошо - плохо само получится.

В крупных системах пользователи просто перестанут жаловаться на плавающие эффекты, а начнут саботировать работу. Это CSAT не измеряется, просто везде будет ощущение что куча людей что то делают а результат маленький.

Все эти оптимальные решения кончаются факапами - банально из за недостатка запаса прочности.

Вот Масса экопримеров из автоиндустрии

это следующий этап который инженеры доносят менеджерам..... +)))

"...на моей практике каждый менеджер хотя бы разок должен побывать в шкуре монтажника на объекте в тьму таракани..." - один отличный тех. директор...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации