Чи впливає управління потужністю процесора на продуктивність сервера?


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 і Brent Ozar (наш SQL / DBA експерта) повідомив нам , що це дуже погана ідея .. кожен спін-вгору, як лотерея , щоб побачити , якщо диск буде на самому ділі зробити його назад :)
Джефф Етвуд

Режим "збалансований" заощаджує мені 10 ват на холостому ходу порівняно з режимом "Висока продуктивність" (~ 15,5 Вт проти ~ 25,5 Вт на ядрі i7 4790). Але, врівноважений режим на сервері Windows 2012 не схожий на максимальну тактову частоту процесора, що сильно шкодить продуктивності запитів бази даних.
Райан Андерсон

8

ви відмовитеся від деякої продуктивності з увімкненим керуванням живленням процесора, якщо тільки ваш сервер не знаходиться під таким навантаженням, що управління живленням ефективно відключило себе. Цей результат мене здивував.

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

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

C1E (Enhanced Halt State) : C1E - простіший з двох компонентів. Його можна вмикати або вимикати в BIOS і виконувати незалежно від операційної системи. C1E має дві конфігурації - простої та навантаження. Якщо використання процесора порівняно низьке, ця функція знижує множник вашого процесора до найнижчого значення (зазвичай 6x) і трохи знижує його vCore. Під час застосування інтенсивного процесора додаток підніме мультиплікатор до максимального значення і забезпечить невеликий приріст vCore для компенсації. У нашому прикладі C1E змусить ваш процесор працювати в 6x або 9x FSB .

EIST (розширена технологія Intel SpeedStep) : Це дуже надійна функція та має широкий спектр енергозберігаючих можливостей. Як і його простіший двоюрідний брат, EIST може впливати як на напругу вашого процесора, так і на його множник - однак він має набагато більше рівнів конфігурації. Замість простого "повільного або швидкого" налаштування, SpeedStep може використовувати всі наявні множники. У нашому прикладі EIST дозволить вашому процесору працювати з множником 6, 7, 8 або 9 , а також вибирає, який саме використовувати, залежно від того, на який попит стоїть ваш процесор. EIST контролюється Windows і використовує різні "схеми живлення", які ви, можливо, бачили на своїй панелі управління.

Під час налаштування параметрів продуктивності для «високої продуктивності», ймовірно , є найкращим місцем для сервера баз даних, я абсолютно впевнений , або EIST і / або C1E викликав процесори в рамках виконання , навіть якщо вони повинні б повернутися до нормальних значень після навантаження істотно збільшився. Мені здається, що велике застереження "що таке значне навантаження?" За даними сайту overclockers.net, вони стверджують, що EIST використовує ці "схеми живлення" для того, як маніпулювати налаштуваннями процесора. Але немає вказівок на відсоток навантаження або на те, як довго знати, коли повернути процесори до нормальної напруги.

Знову ж таки, я аж ніяк не фахівець з предметів процесорів Intel, але я б заперечив, що коригування цих двох налаштувань може отримати вам потрібну економію енергії та продуктивність, яку ви повинні отримати, але дотримуючись налаштування "максимальної продуктивності". настільки ж ефективний без необхідності перезавантаження.


5

Швидка відповідь: Звичайно, економія електроенергії вплине на продуктивність.

Більш довга відповідь - це не весело. В основному спробуйте налаштування, тестуйте продуктивність і вирішуйте, з чим можна жити.

Програми та системи настільки складні, що тут немає жодної різаної та сухої відповіді, окрім "так, буде впливати час реакції та інші швидкості роботи системи". Якщо це набагато повільніше, ніж вінчестер або мережа - ну, ви отримуєте ідею. Тест на реальність.


4

Я завжди намагаюся використовувати VM стільки серверів, скільки можу, але там, де мені доводиться 'голий метал', це сервер, як правило, як мені потрібно або я хочу повністю стабільної продуктивності. Тож для цих критично важливих для бізнесу машин я НІКОЛИ не вмикаю будь-що, що стосується енергозбереження, саме з тих причин, які ви відчуваєте.

*** bang-go-my-green-облікові дані *


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", Microsoft настійно рекомендує залишити вибрані параметри "Збалансоване" в більшості випадків.

Windows Server 2008 включає два додаткові режими за замовчуванням, «Енергозбереження» та «Висока продуктивність», які мають різні цілі та ефективність, і можуть бути доречними в деяких ситуаціях. Режим «Висока продуктивність» може бути підходящим для серверів, які працюють з дуже високим рівнем використання та потребують забезпечення максимальної продуктивності, незалежно від вартості електроенергії. Режим «Енергозбереження» може бути використаний для малокористуваних серверів, які мають більшу продуктивність, ніж реально потрібно; використання „Енергозбереження” в цій ситуації може забезпечити додаткову економію електроенергії.

Ці особливості апаратного рівня енергозбереження процесора однакові в будь-якій ОС, звичайно, це лише питання, включити ви їх чи ні.

Графік економії електроенергії без управління потужністю процесора та управління потужністю процесора:

Ми зрозуміли, що (і це показано на цьому графіку) при високому рівні використання управління живленням процесора автоматично вимикається. Однак мені не зрозуміло, чи впливає на низький рівень використання загальна продуктивність сервера, наприклад, час роботи на запити простого SQL Server.


Здається, наївно вірити білій книжці, написаній Microsoft про один із власних продуктів. Цілі цієї функції можуть бути правильними, але фактичні показники можуть і змінюватись.
gekkz

1
не вірите чому? що "збалансований" увімкнено за замовчуванням ? Це факт .. встановіть Windows Server 2008 R2, якщо ви мені не вірите.
Джефф Етвуд

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

економія електроенергії (скромні 10% на графік) включення керування живленням процесора незаперечна. Ви можете переконатися в цьому, використовуючи kill-a-watt та свій домашній ПК. На домашньому ПК це насправді вище, оскільки вони, як правило, мають менше накопичувачів, пам’яті, рейдових контролерів тощо.
Джефф Етвуд

@KyleBrandt - Я підозрюю, що відсоток максимальної потужності був використаний, щоб зробити результати більш загальними. Таким чином ви застосуєте отримані дані до своєї машини (яка притягує 400 Вт при повному проході, порівняно з сервером на XXX ват у папері).
EricB

0

Ніколи не слід вдаватися до використання налаштувань Windows або Bios Speedstep, що постачається на процесорах Intel, а також є еквівалент AMD. Це може спричинити проблеми, і я бачив такі проблеми, коли за допомогою Speedstep годинник процесора невпинно підскакував вгору і вниз, хоча використання ресурсів процесора було послідовним.

Якщо ви хочете бути зеленішою і зберегти владу, використовувати низькі процесори харчування, призначені з L символом перед ім'ям моделі, такі як L серія 54xx і L 55xx серії від Intel.

EDIT: Вибачте, якщо я створив враження, що ця функція завжди буде невдалою, я просто її спалив, і в критичній системі місії я не можу мати подібні речі, тому я просто намагаюся залишатися подалі від нього.


Я не думаю, що це спричиняє проблеми, інакше це не було б за замовчуванням майже в усіх сучасних ОС і процесорі. Можливо, ви думаєте про набагато старіші варіанти технологій енергозбереження процесора, можливо, кілька років тому?
Джефф Етвуд

Здається, ви припускаєте, що все, що є функцією, працює належним чином. Я фактично говорю про досвід з перших рук із подвійною установкою 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. Подивіться праворуч у вікно різних процесорів.

Якщо ви побачите, що хтось із них припаркований, ви помітите, що половина паркується в будь-який момент часу, всі загоряться, а потім друга половина припаркована. Він чергується вперед і назад. Таким чином, обробляються системні процесори.

Віртуальні машини: Ця проблема ще гірша, коли ви працюєте з віртуальною машиною, оскільки є додаткові накладні витрати гіпервізора. Взагалі кажучи, для того, щоб VM запускався, апаратному забезпеченню повинен бути доступний проміжок часу для кожного з ядер на кожному часовому відрізку.

Якщо у вас є 16 основних компонентів апаратного забезпечення, ви можете запустити VM, використовуючи більше 16 загальних ядер, але для кожного часового відрізка, до цього часового відрізка будуть доходити лише до 16 віртуальних процесорів, а гіпервізор повинен відповідати всім ядрам для VM в цей часовий відрізок. Її неможливо розкласти по декількох часових зображеннях. (Часовий фрагмент - це по суті набір циклів X процесора. Це може бути 1000 або 100 к.с.)

Наприклад: 16 основних апаратних засобів з 8 ВМ. 6 мають 4 віртуальних процесора (4C), а 2 мають 8 віртуальних процесорів (8C).

Timeslice 1: 4x4C Timeslice 2: 2x8C Timeslice 3: 2x4C + 1x8C Timeslice 4: 1x8C + 2x4C

Те, що гіпервізор не може зробити, це розділити половину розподілу на часовий фрагмент на перші 4 ЦП 8 VCPU VM, а потім на наступний часовий відрізок, а решту подати на інші 4 vCPU цього VM. Це все або нічого протягом відрізка часу.

Якщо ви використовуєте Hyper-V від Microsoft, налаштування управління потужністю можуть бути включені в хост-операційній системі, а значить, вона поширюватиметься до клієнтських систем, тим самим впливаючи на них.

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

Іноді система буде паркувати або відпаковувати процесори посеред запиту. У цих випадках запит запускається в конвеєр процесора, вивантажується з нього, і тоді інше ядро ​​процесора вибере процес звідти. Якщо це досить потужний запит, це може траплятися кілька разів протягом всього запиту, змінивши те, що повинно було бути 5-секундним запитом до бази даних, на 15-секундний запит до бази даних.

Найголовніше, що ви побачите від використання збалансованої потужності, - це те, що системи будуть повільніше реагувати на кожен ваш запит.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.