<
  • Главная
Статьи

Економія енергії в Linux: Частина 1. Підсистема CPUfreq

  1. Серія контенту:
  2. Цей контент є частиною серії: Економія енергії в Linux
  3. Про цю серії статей
  4. Підсистема CPUfreq в Linux
  5. Режими C-state і P-state
  6. Режими C-state: майже повна бездіяльність
  7. Режими P-state: робочий стан
  8. Рисунок1: режими C-state і P-state
  9. регулятори
  10. Регулятор performance (продуктивність): найвища частота
  11. Регулятор powersave (енергозбереження): найнижча частота
  12. Регулятор Userspace: ручна настройка частоти користувачем
  13. Регулятор Ondemand: зміна частоти за рівнем завантаження процесора
  14. Регулятор conservative: більш плавний варіант ondemand
  15. далі
  16. Ресурси для скачування

Економія енергії в Linux

Дізнайтеся про всі компоненти настройки енергетичної віддачі для System x зі встановленою Linux

Серія контенту:

Цей контент є частиною # з серії # статей: Економія енергії в Linux

https://www.ibm.com/developerworks/ru/views/global/libraryview.jsp?series_title_by=Экономия+энергии+в+linux

Слідкуйте за виходом нових статей цієї серії.

Цей контент є частиною серії: Економія енергії в Linux

Слідкуйте за виходом нових статей цієї серії.

Про цю серії статей

У цій серії статей розповідається про те, як налаштувати сервер IBM System x зі встановленою Linux для отримання найбільшої енергоефективності. Ви дізнаєтеся про регуляторах в складі ядра (in-kernel governors) і застосуванні їх налаштувань; також показано вплив налаштованих регуляторів на продуктивність і робоче навантаження в системах електронної торгівлі. Практичні ілюстрації даються для сервера System x з встановленим дистрибутивом Red Hat Enterprise Linux версії 5.2 (RHEL 5.2), але вони будуть вірними для будь-якого ядра версії 2.6.x і будь-якого процесора, що підтримує частотне масштабування.

У першій частині стисло описуються компоненти і принципи, на основі яких робиться настройка продуктивності системи, в тому числі: підсистема Linux CPUfreq, режими C-state і P-state і п'ять регуляторів в складі ядра (in-kernel governors).

під другій частині наводяться подробиці загальних налаштувань підсистеми CPUfreq в Linux, п'яти регуляторів - performance, powersave, userspace, ondemand і conservative - і їх налаштувань.

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

Економія енергоспоживання - це питання, яке повинні враховувати всі, кого стосуються проблеми експлуатаційних витрат або охорони навколишнього середовища. У цій статті ми розглянемо, як, не знижуючи продуктивності, можна змінити робочу частоту процесора за допомогою підсистеми CPUfreq в Linux і регуляторів в складі ядра. Однак налаштування енергоспоживання обмежені можливостями конкретного апаратного забезпечення (детально це питання розглядається у другій частині цієї серії статей).

Підсистема CPUfreq в Linux

З виходом ядра версії 2.6.0 з'явилася можливість динамічного масштабування частоти процесора за допомогою підсистеми CPUfreq. Працюючи на більш низьких тактових частотах, процесор споживає пропорційно менше енергії і виділяє менше тепла. Таке динамічне масштабування представляє дозволяє в певних межах регулювати продуктивність для зниження споживання енергії в режимі неповного завантаження.

Для настройки статичної або динамічної політики споживання енергії системою в структурі CPUfreq використовуються регулятори і демони. Динамічні регулятори, які будуть обговорюватися далі в цій статті, перемикають частоту процесора виходячи з основі коефіцієнта його використання для економії енергії без шкоди для продуктивності. Ці регулятори також дають можливість деяких індивідуальних налаштувань масштабування частоти. Крім того, настройки sched_mc_power_savings і sched_smt_power_savings дозволяють виконувати об'єднання потоків для зниження енергоспоживання.

Режими C-state і P-state

Перед початком обговорення CPUfreq розглянемо режими C-state і P-state.

Режими C-state: майже повна бездіяльність

Режими C-state, за винятком режиму C0, коли процесор знаходиться в працюючому стані, - це режими бездіяльності, коли процесор перестає подавати тактові імпульси окремим своїм компонентам і відключає їх для економії енергії. Чим вище рівень режиму C-state, тим більше компонентів він охоплює (зупинка тактирования ядра процесора, припинення подачі переривань і т.д.) і тим більше економія. Під час простою системи ці режими допомагають заощадити енергію.

Режим C1E (відомий також як розширений C1, Enhanced C1 або розширений режим C1, C1 Enhanced Mode) також допомагає економити енергію при бездіяльності системи. C1E економить більше енергії, ніж традиційний режим C1 (який тільки зупиняє тактовий сигнал), так як додатково знижує напругу і частоту. Насправді C1E дозволяє знизити напругу і частоту швидше, ніж будь-який з регуляторів CPUfreq.

Не у всіх процесорів є ці можливості, але для того, щоб використовувати режими C і C1E і отримати значну економію енергії при просте, необхідно включити опції CPU C State і C1E (або їм подібні) в BIOS. Деякі системи підтримують режими глибокого сну C3 і навіть C6.

Пам'ятайте, чим вище рівень режиму C-state, тим більше економія енергії.

Режими P-state: робочий стан

Режими P-state - це робочі стану, що задають тактову частоту і напруга живлення процесора. Чим більше номер режиму, тим нижче частота і напруга живлення процесора. Регулятори CPUfreq використовують режими P-state для зміни тактової частоти і зниження споживання енергії.

Щоб використовувати в системі режими P-state і регулятори CPUfreq, необхідно включити опцію Processor Performance States (або їй подібну) в BIOS. На рісунке1 - проста діаграма режимів C-state і P-state.

Рисунок1: режими C-state і P-state
Економія енергії в Linux   Дізнайтеся про всі компоненти настройки енергетичної віддачі для System x зі встановленою Linux   Серія контенту:   Цей контент є частиною # з серії # статей: Економія енергії в Linux   https://www

Обов'язкові вимоги для роботи CPUfreq

Щоб використовувати підсистему CPUfreq, необхідні умови, описані в цьому розділі. У RHEL 5.2 підсистема CPUfreq включена за замовчуванням (як правило, вона включена за замовчуванням також і в інших дистрибутивах). Щоб швидко це перевірити, подивіться на файлову систему / sys. Якщо ви побачите каталог cpufreq в дорозі / sys / devices / system / cpu / cpu * / cpufreq /, то підсистема CPUfreq у вашій системі зараз включена. Якщо каталог відсутня, то для того, щоб він з'явився, дотримуйтесь інструкцій, даними нижче.

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

Далі подивіться на конфігураційний файл ядра. Всі необхідні настройки, як правило, відзначені за замовчуванням в ядрі RHEL 5.2, але для того, щоб отримати бажаний стан при старті системи, деякі з цих налаштувань можна змінити. У розділі CPU Frequency scaling конфігураційного файлу ядра розташовуються такі опції:

CONFIG_CPU_FREQ

Щоб використовувати масштабування тактової частоти, ця опція повинна мати значення y.

CONFIG_CPU_FREQ_GOV_PERFORMANCE, CONFIG_CPU_FREQ_GOV_POWERSAVE,
CONFIG_CPU_FREQ_GOV_USERSPACE, CONFIG_CPU_FREQ_GOV_ONDEMAND,
CONFIG_CPU_FREQ_GOV_CONSERVATIVE

Ці опції відносяться до кожного з доступних регуляторів CPUfreq. Щоб використовувати потрібний регулятор, встановіть в конфігурації значення y або m. При значенні y регулятор буде вбудований в ядро, при використанні m модуль ядра потрібно буде завантажувати при кожному завантаженні системи за допомогою однієї з нижченаведених команд:

modprobe cpufreq_performance
modprobe cpufreq_powersave
modprobe cpufreq_userspace
modprobe cpufreq_ondemand
modprobe cpufreq_conservative

Крім того, в разі використання m модулі можна завантажувати при старті системи, вказавши їх у файлі /etc/rc.local. Також зауважте, що включити за замовчуванням регулятор userspace або performance можна, встановивши для CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE або для CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE значення y.

Для використання sched_mc_power_savings і sched_smt_power_savings, які описані нижче, опції CONFIG_SCHED_MC і CONFIG_SCHED_SMT в розділі Processor type and features конфігураційного файлу ядра також повинні мати значення y.

Щоб зміни в конфігурації вступили в силу, потрібно перебудувати і завантажити ядро. Можливо, ви знаєте, як це робиться, але якщо якісь деталі вам невідомі, зверніться до будь-якого з численних джерел документації по складанню ядра Linux (дещо приведено в розділі ресурси ).

регулятори

У підсистемі CPUfreq доступні для використання п'ять регуляторів. Вони встановлюють тактову частоту процесора згідно певним критеріям; деякі з них динамічно змінюють частоту при зміні вхідних даних від системи або користувача. У цій статті розглядається дистрибутив RHEL 5.2 на основі ядра 2.6.18, в якому всі ці регулятори доступні. Давайте познайомимося з ними; в частинах 2 і 3 серії ці регулятори описуються більш детально.

Регулятор performance (продуктивність): найвища частота

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

Регулятор powersave (енергозбереження): найнижча частота

Регулятор powersave, на противагу попередньому, статично налаштовує процесор на найнижчу з доступних частот. У ньому також можна налаштувати діапазон доступних частот. Призначення його - постійна робота на найнижчій з можливих частот. Очевидно, що в цьому випадку на продуктивність впливає той факт, що система ніколи не буде використовувати більш високу частоту, незалежно від ступеня зайнятості процесора (ів).

На практиці цей регулятор часто не дає економії енергії, оскільки найбільша економія досягається за рахунок використання режимів C-state. Використання регулятора powersave збільшує час роботи процесу, оскільки він буде використовувати найменшу частоту; в результаті система довше не перейде в стан простою і тому не отримає економію від входження в режим C-state.

Регулятор Userspace: ручна настройка частоти користувачем

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

Зауважте, що сам по собі регулятор userspace не виробляє динамічного зміни частоти; скоріше, він дає можливість користувачеві або програмою в просторі користувача динамічно вибирати частоту процесора.

Регулятор Ondemand: зміна частоти за рівнем завантаження процесора

Вперше з'явився в ядрі версії 2.6.10 регулятор ondemand став першим регулятором в складі ядра, призначеним для динамічної зміни частоти процесора в залежності від завантаження самого процесора. Регулятор ondemand перевіряє рівень використання процесора, і якщо певний поріг перевищено, регулятор виставляє найбільш високу частоту з доступних. У разі, якщо відсоток використання нижче порога, регулятор знижує частоту до наступної можливої ​​позначки.

Можливе налаштування доступного діапазону частот, позначки, на якій регулятор перевіряє використання процесора в системі і порога коефіцієнта використання.

Регулятор conservative: більш плавний варіант ondemand

Регулятор conservative вперше з'явився в ядрі версії 2.6.12, він базується на регуляторі ondemand. Він теж динамічно налаштовує частоти в залежності від завантаження процесора, однак поводиться трохи по-іншому і дає можливість збільшувати потужність поступово. Регулятор conservative перевіряє відсоток використання процесора і в разі, якщо значення виходить за нижній або верхній поріг, поступово підвищує або знижує частоту до наступної можливої, замість того щоб відразу встановити найвищу частоту, як це робить регулятор ondemand.

Можливе налаштування доступного діапазону частот, позначки, з якої регулятор перевіряє використання процесора в системі, пороги коефіцієнтів використання і розмір кроку частоти.

далі

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

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

Ресурси для скачування

Схожі теми

Підпишіть мене на повідомлення до коментарів

Jsp?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью