«Зеленое» ПО: как экономить ресурсы ЦОД?

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

В чем проблема?

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

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

Когда цель — экономить ресурсы ЦОД

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

Минимальный доступ к памяти

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

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

Язык программирования и ОС

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

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

Заключение

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

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

Помогите нам стать лучше!

Пожалуйста, оцените этот материал, нажав на звёздочки ниже.

Средний рейтинг 5 / 5. Количество оценок: 2

Оценок пока нет. Поставьте оценку первым.

Exit mobile version