Влияет ли управление питанием процессора на производительность сервера?


44

Я проводил несколько простых ручных бенчмарков на нашем (живом) сервере баз данных в непиковые часы и заметил, что запросы возвращали несколько ошибочные результаты тестов .

Некоторое время назад я включил «Сбалансированный» план энергосбережения на всех наших серверах, потому что я полагал, что они далеко не так высоки, и таким образом мы могли сэкономить немного энергии.

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

Я был немного удивлен, что наш веб-уровень, даже при нагрузке 35-40%, работает на понижающей частоте с 2,8 ГГц при 1,25 В до 2,0 ГГц при 1,15 В.

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

Наш сервер баз данных с 8 процессорами имеет тонну трафика, но чрезвычайно низкую загрузку ЦП (просто из-за характера наших запросов SQL - их много, но очень простых запросов). Это обычно сидит на 10% или меньше. Так что я ожидаю, что это разгон даже больше, чем на скриншоте выше. В любом случае, когда я переключил управление энергопотреблением на «высокую производительность», я увидел, что мой простой тест SQL-запроса улучшился примерно на 20% и стал очень последовательным от запуска к запуску .

Я думаю, я думал, что управление питанием на слабо загруженных серверах было беспроигрышным - без потери производительности и значительной экономии энергии, поскольку ЦП обычно является потребителем энергии № 1 или № 2 на большинстве серверов. Это не похоже на случай; Вы потеряете некоторую производительность при включенном управлении питанием процессора, если ваш сервер не всегда находится под такой большой нагрузкой, что управление питанием фактически отключилось. Этот результат меня удивил.

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


2
Я ненавижу это говорить, но вы дали свой ответ. Посмотрите на три пузырька рядом с «Производительностью» для сбалансированного режима и шесть для режима высокой производительности? Есть разница :) Экономия энергии осуществляется в основном за счет разгона процессора. От этого вы увидите снижение производительности, даже если оно может восстановить его под нагрузкой.
Билл Вайс

да, но «сбалансированный» включен по умолчанию в Windows Server 2008 R2. Для меня это означает, что не должно быть значительного снижения производительности при обычном использовании, например, при слегка загруженном сервере.
Джефф Этвуд

4
Три пузыря против шести! Это похоже на огромную разницу! :)
Билл Вайс

1
Windows: заглушая людей с 1985 года.
Майкл Графф

Ответы:


16

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


1
Я согласен, что так должно работать на сервере.
Джефф Этвуд

11

Я всегда отключал любой тип управления питанием на серверах. Мне любопытно, что испытали другие, но я всегда предполагал, что если сервер недостаточно синхронизируется, всегда будет некоторая задержка, чтобы «увеличить» процессор до 100%, а в центре обработки данных любая задержка, как эта недопустимо

Представленные вами данные подтверждают это предположение. Итак, я не проводил никаких конкретных испытаний, но, похоже, вам не следует использовать какие-либо энергосберегающие технологии в Windows или BIOS. Я даже отключил «отключение сети» и настройки PCI-карты, чтобы быть очень консервативным.


8

Сколько энергии это на самом деле спасет вас :
если вы решите, что эта функция может поставить под угрозу стабильность ваших серверов (у меня есть опыт работы с этим), то вы могли бы искать экономию энергии в других местах.

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

Я помню, как читал несколько лет назад о том, что одна из крупнейших американских автомобильных компаний (не помню, какая) имеет давление, чтобы изменить выбросы выхлопных газов на своих автомобилях. Вместо этого компания показала, что, если она закроет некоторые из своих заводов, это будет намного дешевле для них, а также приведет к гораздо большей экономии выбросов.

Не забывайте диски:
Кроме того, вы можете проверить, что эти функции энергосбережения не раскручивают диски, если они не используются. Может быть, на некоторое время все результаты SQL-запроса будут в ОЗУ, диск будет использоваться и перейдет в спящий режим (хотя и не уверен, что он так работает)? Если это может произойти, это приведет к значительному снижению производительности, пока все снова вращается.


4
о да, вращение диска на серверах довольно рискованно. У нас это было включено на нашем NAS, и Брент Озар (наш эксперт по SQL / DBA) посоветовал нам, что это очень плохая идея ... каждое вращение похоже на лотерею, чтобы увидеть, действительно ли диск вернется :)
Джефф Этвуд

«Сбалансированный» режим экономит мне 10 Вт на холостом ходу по сравнению с режимом «Высокая производительность» (~ 15,5 Вт против ~ 25,5 Вт на ядре i7 4790). Но сбалансированный режим на Windows Server 2012, похоже, не увеличивает максимальную тактовую частоту процессора, что серьезно снижает производительность запросов к базе данных.
Райан Андерсон

8

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

Предисловие: я делаю некоторые обобщения о Intel Xeons и их энергосберегающих характеристиках с помощью SpeedStep. Читая о 45-нм процессорах Intel Xeon « Yorkfield », Enhanced Intel SpeedStep Technology (EIST) и Enhanced Halt State (C1E) кажутся реальным виновником ситуации. Я бы согласился с вашей оценкой, полагая, что включение таких функций управления питанием поможет сохранить энергию, но когда процессорам потребуется энергия под нагрузкой, система вернется к настройкам тактовой частоты с нормальным напряжением. Похоже, что EIST и C1E имеют некоторые побочные эффекты, которые не подразумеваются интуитивно при использовании одного или другого параметра в BIOS. После просмотра многочисленных сайтов о разгоне, кажется, что эти две настройки в BIOS вызывают немало разочарований.

С http://www.overclock.net/intel-cpus/376099-speedstep-guide-why-does-my-processor.html :

C1E (расширенное состояние остановки) : C1E является более простым из двух компонентов. Он может быть включен или отключен в BIOS и работает независимо от операционной системы. C1E имеет две конфигурации - холостой и нагрузочный. Когда загрузка ЦП относительно низкая, эта функция понижает множитель вашего процессора до минимального значения (обычно 6x) и немного снижает его vCore. Во время приложения, интенсивно использующего процессор, оно повысит множитель до максимального значения и обеспечит небольшое повышение vCore для компенсации. В нашем примере C1E заставит ваш процессор работать с частотой FSB 6x или 9x .

EIST (усовершенствованная технология Intel SpeedStep) : это очень надежная функция, обладающая широким спектром функций энергосбережения. Как и его более простой родственник, EIST может влиять как на напряжение вашего процессора, так и на его множитель, однако он имеет гораздо больше уровней конфигурации. Вместо простой «медленной или быстрой» настройки SpeedStep может использовать все доступные множители. В нашем примере EIST позволит вашему процессору работать с множителем 6, 7, 8 или 9 , и выберет, какой из них использовать, исходя из того, насколько загружен ваш процессор. EIST контролируется Windows и использует различные «схемы питания», которые вы, возможно, видели на своей панели управления.

Хотя настройка параметров производительности для «высокой производительности», вероятно, является наилучшей настройкой для сервера базы данных, я вполне уверен, что либо EIST, и / или C1E приводили к недостаточной производительности ЦП, даже если при загрузке они должны были вернуться к нормальным настройкам. существенно увеличилось. Большое предостережение для меня, как представляется, "что такое существенная нагрузка?" Согласно сайту overclockers.net, они утверждают, что EIST использует эти настройки «схем электропитания» для управления настройками вашего ЦП. Но нет указания на процент нагрузки или на то, как долго знать, когда вернуть процессоры обратно к нормальному напряжению.

Опять же, я ни в коем случае не эксперт в предметной области для процессоров Intel, но я хотел бы поспорить, что настройка этих двух параметров может дать вам экономию энергии, которую вы хотите, и производительность, которую вы должны получить, но придерживаясь настройки «максимальная производительность» так же эффективно, без необходимости перезагрузки.


5

Быстрый ответ: конечно, энергосбережение повлияет на производительность.

Более длинный ответ не веселый. По сути, попробуйте настройку, протестируйте производительность и решите, с чем вы можете жить.

Приложения и системы настолько сложны, что здесь нет точного ответа, кроме «да, это повлияет на время реакции и другие скорости системы». Если это намного медленнее, чем жесткий диск или сеть - ну, вы поняли. Тест в реальности.


4

Я всегда стараюсь виртуализировать как можно больше серверов, но там, где мне нужно «пустить в ход» сервер, это обычно так, как мне нужно или мне нужна абсолютно стабильная производительность. Поэтому для этих критически важных для бизнеса машин я НИКОГДА не включаю ничего, что связано с энергосбережением, именно по тем причинам, с которыми вы столкнулись.

*** бах-идет-мои-зеленый-учетные данные *


3

Несколько вещей:

  1. Проверьте в BIOS, чтобы убедиться, что управление питанием находится под контролем ОС. Вполне возможно, что он настроен на управление встроенным программным обеспечением и, следовательно, использует тупое, неоптимальное управление питанием процессора.

  2. Проверьте, есть ли какие-либо исправления, связанные с управлением питанием, которые могут отсутствовать. В тот день, когда вышла Vista / Server 2008, было немало заметных.

  3. Проверьте подробную конфигурацию для Сбалансированного. Возможно, что другая функция энергосбережения вызывает снижение производительности. Теоретически, снижение производительности от EIST должно быть незначительным, хотя, опять же, база данных SQL занимает уникальное место, и вполне вероятно, что она подвергается непропорционально сильному влиянию управления питанием процессора.


1
О, мальчик, я опаздываю на вечеринку ...
Bigbio2002

2

Некоторая информация от Microsoft (к сожалению, формат Word Doc)

Повышение энергоэффективности и управление энергопотреблением с Windows Server 2008 R2

Windows Server 2008 в целом более энергоэффективен, чем его предшественник, Windows Server 2003. По умолчанию Windows Server 2008 использует «Сбалансированный» план энергосбережения , который направлен на поддержание высокой производительности при одновременном энергосбережении, когда это возможно. Это означает, что Windows Server 2008 потребляет меньше энергии, чем при базовой установке Windows Server 2003. Поскольку «сбалансированный» режим обеспечивает максимальную эффективность энергопотребления (OOB), корпорация Майкрософт настоятельно рекомендует оставить выбранные по умолчанию «сбалансированные» параметры выбранными. в большинстве случаев.

Windows Server 2008 включает в себя два дополнительных режима по умолчанию, «Экономия энергии» и «Высокая производительность», которые имеют разные цели в отношении мощности и производительности и могут быть подходящими в некоторых ситуациях. Режим «Высокая производительность» может подходить для серверов, которые работают с очень высокой нагрузкой и должны обеспечивать максимальную производительность, независимо от затрат на электроэнергию. Режим «Энергосбережение» можно использовать для малоиспользуемых серверов, которые обладают большей производительностью, чем им действительно нужно; Использование «Энергосбережения» в этой ситуации может обеспечить дополнительную экономию энергии.

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

График энергосбережения без управления питанием ЦП в сравнении с управлением питанием ЦП:

Нам ясно, что (и этот график показывает это) при высоких уровнях использования управление питанием процессора автоматически отключается. Однако мне неясно, влияет ли при низких уровнях использования общая производительность сервера, например, время выполнения запросов SQL Server для простых запросов.


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

1
не веришь во что? что "сбалансированный" включен по умолчанию ? Это факт ... установите Windows Server 2008 R2, если вы мне не верите.
Джефф Этвуд

@Джефф Этвуд: Я думаю, он мог иметь в виду фактические результаты экономии энергии на графике. В их интересах было бы показать статистику таким образом, чтобы она показала наиболее возможную экономию энергии по маркетинговым причинам. Например, процент максимальной мощности кажется немного странным, почему бы просто не сэкономить фактическую мощность? Однако, как заявление об отказе, может быть очень веская причина, по которой они выбрали этот показатель (если это даже правильное слово).
Кайл Брандт

Экономия энергии (скромные 10% на график), обеспечивающая управление питанием процессора, неоспорима. Вы можете использовать «убить ватт» и собственный домашний компьютер, чтобы убедиться в этом. Это на самом деле выше на домашнем ПК, так как у них, как правило, меньше дисков, памяти, контроллеров и т. Д., Которые потребляют меньше энергии.
Джефф Этвуд

@KyleBrandt - Я подозреваю, что процент максимальной мощности был использован, чтобы сделать выводы более общими. Таким образом, вы применяете полученные данные к своей машине (которая потребляет 400 Вт на полную мощность, по сравнению с сервером ХХХ ватт в статье).
EricB

0

Вы никогда не должны прибегать к использованию настроек Windows или Bios Speedstep, которые поставляются на процессорах Intel, и есть также эквивалент AMD. Это может вызвать проблемы, и я видел такие проблемы, когда с помощью Speedstep тактовая частота ЦП продолжала бы беспорядочно отражаться вверх и вниз, даже если использование ресурсов ЦП было постоянным.

Если вы хотите быть более экологичным и экономить электроэнергию, используйте процессоры с низким энергопотреблением, обозначенные символом L перед названием модели, такие как серии L 54XX и L 55XX от Intel.

РЕДАКТИРОВАТЬ: Я извиняюсь, если у меня создалось впечатление, что эта функция всегда выйдет из строя, я просто сгорел от этого, и в критически важной системе я не могу такого рода вещи, поэтому я просто стараюсь подальше от этого.


Я не думаю, что это вызывает проблемы, иначе он не будет включен по умолчанию почти во всех современных ОС и процессорах. Возможно, вы думаете о гораздо более старых вариантах энергосберегающих технологий, возможно, несколько лет назад?
Джефф Этвуд

Кажется, вы предполагаете, что все, что является функцией, работает должным образом. Я на самом деле говорю о непосредственном опыте с двойной установкой E5520, которая имела эту проблему, на двух разных серверах.
gekkz

@gekkz Я не думаю, что кто-то говорит, что это не может вызвать проблемы, но ваш ответ предполагает, что это всегда или почти всегда вызывает проблемы, что просто не соответствует действительности. Если бы это было, у тысяч (миллионов?) Серверов были бы проблемы, вызванные этим прямо сейчас.
Феб

0

Когда вы говорите о производительности на сервере, есть несколько разных способов взглянуть на это. Существует очевидное время отклика (аналогично задержке в сети) и пропускная способность (аналогично пропускной способности сети).

Некоторые версии Windows Server поставляются с настройками сбалансированного питания, включенными по умолчанию. Как отметил Джефф. Windows 2008 R2 является одним из них. В наши дни очень немногие процессоры являются одноядерными, поэтому это объяснение применимо практически ко всем серверам Windows, с которыми вы будете работать, за исключением одноядерных виртуальных машин. (подробнее об этом позже).

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

Проблема в том, что, когда ЦП отключены, вы удвоили количество доступных циклов ЦП, доступных для системы, и неожиданно разбалансировали нагрузку на систему, взяв ее (например) с 70% до 35%. Система смотрит на это, и после обработки пакета трафика она думает: «Эй, я должен немного набрать этот номер для экономии энергии». И так оно и есть.

Вот плохая часть. Чтобы предотвратить неравномерное распределение тепла и энергии в ядрах процессора, он имеет тенденцию парковать процессоры, которые не были припаркованы в последнее время. И для того, чтобы это функционировало должным образом, ЦПУ необходимо сбросить все данные из регистров ЦП (кэш-память L1, L2 и L3) в другое место (скорее всего, в основную память).

В качестве гипотетического примера, скажем, у вас есть 8-ядерный процессор с C1-C8.

  • Активный: C1, C3, C5, C7
  • Припарковано: C2, C4, C6, C8

Когда это происходит, все они становятся активными в течение некоторого периода времени, и затем система будет парковать их следующим образом:

  • Активный: C2, C4, C6, C8
  • Припарковано: C1, C3, C5, C7

Но при этом существует большая нагрузка, связанная с очисткой всех данных из кэша L1-L3, чтобы это произошло, чтобы не возникало странных ошибок с программами, которые были очищены из конвейера ЦП.

Вероятно, есть официальное название, но мне нравится объяснять это как перегрузка процессора. В основном, процессоры тратят больше времени на занятую работу, перемещая данные внутри, чем на обработку рабочих запросов.

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

  1. Откройте «Диспетчер задач»
  2. Нажмите на вкладку «Производительность».
  3. Нажмите «Открыть монитор ресурсов»
  4. Выберите вкладку «CPU»
  5. Посмотрите на правую часть окна на различные процессоры.

Если вы видите, что кто-то из них припаркован, вы заметите, что половина из них припаркована в любой момент времени, они все сгорят, а затем другая половина будет припаркована. Он чередуется взад и вперед. Таким образом, системные процессоры бьются.

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

Если у вас 16-ядерное аппаратное обеспечение, вы можете запускать виртуальные машины, используя более 16 ядер, но для каждого временного интервала для этого временного интервала будут доступны только до 16 виртуальных процессоров, и гипервизор должен соответствовать всем ядрам для виртуальной машины. в этом временном интервале. Он не может быть распределен по нескольким временным интервалам. (Временной интервал - это, по сути, набор циклов процессора X. Это может быть 1000 или 100 000 циклов)

Пример: 16-ти ядерное оборудование с 8 ВМ. 6 имеют 4 виртуальных процессора (4C) и 2 имеют 8 виртуальных процессоров (8C).

Временной интервал 1: 4x4C Временной интервал 2: 2x8C Временной интервал 3: 2x4C + 1x8C Временной интервал 4: 1x8C + 2x4C

То, что не может сделать гипервизор, - это разделить половину выделения для временного интервала на первые 4 ЦП виртуальной машины с 8 виртуальными ЦП, а затем на следующем временном интервале отдать остальное остальным 4 виртуальным ЦП этой виртуальной машины. Это все или ничего в пределах временного интервала.

Если вы используете Microsoft Hyper-V, настройки управления питанием могут быть включены в хост-ОС, то есть распространятся на клиентские системы, что также повлияет на них.

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

Иногда система будет парковать или отключать ЦП в середине запроса. В этих случаях запрос запускается в конвейер ЦП, выгружается из него, а затем другое ядро ​​ЦП будет обрабатывать процесс оттуда. Если это достаточно большой запрос, это может происходить несколько раз в течение всего запроса, заменяя запрос базы данных в 5 секунд на запрос базы данных в 15 секунд.

Самое важное, что вы увидите в использовании Balanced Power, - это то, что системы будут чувствовать себя медленнее, реагируя практически на каждый ваш запрос.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.