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

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

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

Деньги и CO2

Результаты последних исследований [1, 2] свидетельствуют о растущем интересе к проблеме использования энергии в компьютерных системах и показывают, какой «вклад» вносит энергопотребление в общую стоимость владения [3]. Помимо счетов за электроэнергию общая стоимость владения (Total Cost of Ownership, TCO) включает в себя и другие зависящие от энергии компоненты, такие как плата за электропитание систем охлаждения, расходы на на поддержку инфраструктуры центров обработки данных и т.д. Затраты на охлаждение и доставку пропорциональны среднему количеству энергии, потребляемой серверами, в силу чего повышение эффективности использования энергии положительно скажется на всех компонентах TCO, зависящих от энергопотребления.

Снижению энергопотребления компьютеров в глобальном масштабе посвящен целый ряд инициатив, в том числе Climate Savers Computing Initiative (www.climatesaverscomputing.org ). Эти инициативы направлены на то, чтобы стимулировать внедрение высокоэффективных источников энергии и использование функций энергосбережения, уже имеющихся в оборудовании пользователей. Создание более эффективных центральных процессоров, базирующихся на многоядерной архитектуре, также способствует появлению энергосберегающих серверов [3]. Однако долгосрочные тенденции неизменно свидетельствуют о том, что для достижения более высокой производительности требуется более высокий уровень использования энергии. В итоге энергетическую эффективность систем необходимо увеличивать теми же темпами, что и производительность компьютеров, чтобы избежать значительного роста уровня энергопотребления.

Серверы или ноутбуки

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

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

На рис. 1 показано распределение уровней загрузки центральных процессоров тысяч серверов в течение полугода [5]. Несмотря на то, что фактическая форма распределения серьезно меняется от сервера к серверу, по этим данным можно сделать следующий вывод: серверы редко полностью простаивают, хотя, как правило, и не работают с предельно допустимой нагрузкой— большую часть времени уровень их загрузки составляет 10-50% от максимального. Такое поведение не случайно; оно характерно для сервис-ориентированных систем в целом, а потому его следует учитывает при выработке общих принципов проектирования распределенных систем.

Рис. 1. Средний уровень загрузки центральных процессоров для более чем 5 тыс. серверов в течение полугода. Серверы редко полностью бездействуют и не часто работают на пределе своих возможностей. Как правило, большую часть времени уровень их загрузки составляет 10 — 50% от максимального

Если Internet-сервисы организованы таким образом, что средняя нагрузка сервера приближается к 100%, то, скорее всего, трудно будет удовлетворить требования к пропускной способности и к задержке, указанные в соглашениях об уровне обслуживания: незначительные изменения в трафике или какие-либо внутренние сбои, такие как аппаратные или программные ошибки, могут мгновенно довести нагрузку до максимально возможной. Более того, при отсутствии разумного запаса мощности чрезвычайно усложняется выполнение регулярных операций, ведь любая операция, связанная с обслуживанием системы, может привести к серьезным сбоям. Точно так же, при правильно организованных сервисах вряд ли возможны длительные периоды полного простоя, из-за которых значительные средства будут тратиться впустую.

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

Распределение данных между пулом компьютеров повышает уровень готовности данных, а также снижает вероятность того, что сбой приведет к потере информации. Это может также помочь ускорить восстановление после сбоев за счет распределения нагрузки между большим количеством узлов, как это делается в Google File System [6]. Таким образом, все серверы должны поддерживать высокий уровень готовности даже в периоды низкой нагрузки. Кроме того, подключенные в сети серверы часто выполняют множество фоновых задач, в силу чего они не могут перейти в режим ожидания.

При небольшом количестве периодов полного бездействия серверов невозможно воспользоваться режимами неактивного энергосбережения, которые оказались столь эффективными для мобильных устройств. И хотя разработчикам иногда удается реорганизовать свои приложения таким образом, чтобы во время периодов пониженной нагрузки возникали периоды бездействия, которые можно было бы использовать для энергосбережения, на практике такое зачастую трудно обеспечить и еще труднее поддерживать. В [7] можно найти иллюстрации проблем, возникающих при организации периодов бездействия для серверных систем. Более того, некоторые режимы неактивного энергосбережения предполагают исключительно высокие издержки при возвращении в рабочее состояние (например, время раскрутки дисков), что значительно снижает их применимость на практике.

Энергетическая эффективность при переменных режимах работы

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

Рис. 2. Уровень энергопотребления и энергетическая эффективность сервера при различных уровнях загрузки, от бездействия до пиковой производительности. Даже энергетически эффективный сервер потребляет около половины своей максимальной энергии, когда не выполняет практически никакой работы

Влияние, которое этот узкий динамический диапазон энергопотребления оказывает на энергетическую эффективность системы (красная кривая на рис. 2), и поражает, и заставляет задуматься. Для того чтобы подсчитать энергетическую эффективность сервера, мы просто поделили уровень его загрузки на соответствующую величину энергопотребления. Мы видим, что пиковая энергетическая эффективность достигается при пиковом уровне загрузки и быстро снижается по мере снижения уровня загрузки. В частности, энергетическая эффективность при уровне загрузки от 20 до 30% (а именно в таком режиме серверы работают большую часть времени) почти вдвое меньше энергетической эффективности, показываемой при пиковой производительности. Это плохо соотносится с характеристиками уровня использования приложений серверного класса.

Энергетически сбалансированные компьютеры

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

Энергетически сбалансированные компьютеры могли бы демонстрировать широкий динамический диапазон энергопотребления — свойство, которое сейчас, может быть, и редко встречается в компьютерном оборудовании, но не столь уникально в других предметных областях. Например, среднее ежедневное энергопотребление человека приблизительно равно энергопотреблению старого персонального компьютера— около 120 Вт. Однако во время отдыха человеку необходимо всего 70 Вт [8], при том, что в течение десятков минут он может выдерживать пиковые нагрузки, расходуя до 1 кВт энергии, а у выдающихся спортсменов, как утверждается, этот показатель приближается к 2 кВт [9].

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

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

Рис. 3. Вклад центральных процессоров в общее энергопотребление для двух поколений серверов Google при пиковой производительности (первые два столбца диаграммы) и для более позднего поколения в режиме бездействия (правый столбец диаграммы) 

Широкий динамический диапазон энергопотребления

Современные процессоры для настольных ПК и серверов могут потреблять менее трети своей пиковой энергии в режимах с очень низкой активностью, в силу чего динамический диапазон составляет более 70% от пикового энергопотребления. Центральные процессоры, предназначенные для мобильных и встроенных систем, могут работать даже лучше, и уровень их энергопотребления в режиме бездействия часто достигает одной десятой или даже меньше пикового энергопотребления [10]. Они добиваются этого, даже когда не используют никаких влияющих на производительность (или достигаемых программным образом) режимов экономии энергии. Судя по нашему опыту, динамический диапазон энергопотребления всех других компонентов значительно уже: менее 50% для оперативной памяти, 25% для дисководов и 15% для сетевых коммутаторов.

Активные режимы низкого энергопотребления

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

Установка серверов с динамическим диапазоном энергопотребления в 90% (см. рис. 4) может в полтора раза сократить уровень энергии, используемой при операциях центров обработки данных [5]. Применение таких компьютеров также снизит пиковое энергопотребление на уровне подразделения более чем на 30%, судя по моделированию рабочей нагрузки реальных центров обработки данных. Это серьезные улучшения, особенно если учесть, что они являются следствием оптимизации, которая не затрагивает пиковый уровень энергопотребления серверов. Кривая эффективности энергопотребления на рис. 4 иллюстрирует этот эффект. Энергетическая эффективность такого сервера превышает 80% от ее пиковой величины для уровня загрузки в 30% и выше и остается в пределах 50% для более низкого, вплоть до 10%, уровня загрузки.

Рис. 4. Уровень энергопотребления и энергетическая эффективность в энергетически сбалансированном сервере. Энергетическая эффективность этого сервера превышает 80% ее пиковой величины для уровня загрузки в 30% и выше, остается в пределах 50% для более низкого, вплоть до 10%, уровня загрузки

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

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

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

***

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

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

Литература

  1. US Environmental Protection Agency, Report to Congress on Server and Data Center Energy Efficiency: Public Law 109-431. www.energystar.gov/ia/partners/prod_development/downloads/EPA_Datacenter_Report_Congress_Final1.pdf.  
  2. J.G. Koomey, Estimating Total Power Consumption by Servers in the U.S. and the World. enterprise.amd.com/Downloads/svrpwrusecompletefinal.pdf. 
  3. L.A. Barroso, The Price of Performance: An Economic Case for Chip Multiprocessing. ACM Queue, Sept. 2005.
  4. J. Hill et al., System Architecture Directions for Networked Sensors. Proc. SIGOPS Oper. Syst. Rev., ACM Press, vol. 34, no. 5, 2000.
  5. X. Fan, W.-D. Weber, L.A. Barroso, Power Provisioning for a Warehouse-Sized Computer. research.google.com/archive/power_provisioning.pdf.
  6. S. Ghemawat, H. Gobioff, S.-T. Leung, The Google File System. www.cs.rochester.edu/meetings/sosp2003/papers/p125-ghemawat.pdf
  7. S. Siddha, V. Pallipadi, A. Van De Ven, Getting Maximum Mileage Out of Tickless. Proc. 2007 Linux Symp., 2007.
  8. E. Ravussin et al., Determinants of 24-Hour Energy Expenditure in Man: Methods and Results Using a Respiratory Chamber. www.pubmedcentral.nih.gov/picrender.fcgi?artid=423919&blobtype=pdf
  9. E.F. Coyle, Improved Muscular Efficiency Displayed as Tour de France Champion Matures. jap.physiology.org/cgi/reprint/98/6/2191.
  10. Z. Chen et al., A 25W(max) SoC with Dual 2GHz Power Cores and Integrated Memory and I/O Subsystems. www.pasemi.com/downloads/PA_Semi_ISSCC_2007.pdf.  

Луис Андре Баррозо (luiz@google.com )— ведущий инженер, Урс Холцл (urs@google.com)— старший вице-президент по операциям компании Google.


Luiz Andre Barroso, Urs Holzle. The Case for Energy-Proportional Computing, IEEE Computer, December 2007. IEEE Computer Society, 2007. All rights reserved. Reprinted with permission.