Introdução aos Clusters Verdes de Servidores



Documentos relacionados
Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Entendendo como funciona o NAT

SISTEMAS DISTRIBUÍDOS

Podemos encontrar uma figura interessante no PMBOK (Capítulo 7) sobre a necessidade de organizarmos o fluxo de caixa em um projeto.

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Arquitetura de Rede de Computadores

Comparativo de desempenho do Pervasive PSQL v11

IW10. Rev.: 02. Especificações Técnicas

7.Conclusão e Trabalhos Futuros

Roteamento e Comutação

Tecnologia em Gestão Pública Desenvolvimento de Projetos - Aula 9 Prof. Rafael Roesler

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Sistemas Distribuídos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA

XDOC. Solução otimizada para armazenamento e recuperação de documentos

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

1. Quem somos nós? A AGI Soluções nasceu em Belo Horizonte (BH), com a simples missão de entregar serviços de TI de forma rápida e com alta qualidade.

PARANÁ GOVERNO DO ESTADO

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Gerência do Processador

O que é isso? O que ocorreu? Como resolver os problemas? Pesquisas no IC-UFF. Computação Verde. Julius Leite

PROPOSTA COMERCIAL CLOUD SERVER

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Arquiteturas RISC. (Reduced Instructions Set Computers)

UNIVERSIDADE FEDERAL DE SANTA CATARINA UFSC DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA INE BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO.

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP

PLANEJAMENTO OPERACIONAL - MARKETING E PRODUÇÃO MÓDULO 3 O QUE É PLANEJAMENTO DE VENDAS E OPERAÇÕES?

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA

Eficiência operacional no setor público. Dez recomendações para cortar custos

2 Diagrama de Caso de Uso

UNIP UNIVERSIDADE PAULISTA

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Módulo 4. Construindo uma solução OLAP

Integrating Multimedia Applications in Hard Real-Time Systems. Introdução - CM são sensíveis a delay e variação no delay (Jitter)

Montagem e Manutenção. Luís Guilherme A. Pontes

Sitec Power Soluções em Energia ENERGIA REATIVA E FATOR DE POTÊNCIA

Aumente sua velocidade e flexibilidade com a implantação da nuvem gerenciada de software da SAP

3 SCS: Sistema de Componentes de Software

4 Segmentação Algoritmo proposto

2. Representação Numérica

Simulação Computacional de Sistemas, ou simplesmente Simulação

Administração de Sistemas de Informação Gerenciais

Engenharia de Software III

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

6 Construção de Cenários

1

On Scalability of Software-Defined Networking

TRABALHO COM GRANDES MONTAGENS

Unidade 13: Paralelismo:

Profs. Deja e Andrei

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Introdução ao Modelos de Duas Camadas Cliente Servidor

Gerência de Redes NOC

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

3. Arquitetura Básica do Computador

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

UTILIZAÇÃO DA COMPETÊNCIA DE TI ATRAVÉS DE UM ABRANGENTE PLANEJAMENTO DE CAPACIDADE E MODELAGEM DE CARGAS DE TRABALHO

Sistema Operacional Correção - Exercício de Revisão

Memórias Prof. Galvez Gonçalves

Sistemas Operacionais

Infraestrutura: devo usar a nuvem? Prof. Artur Clayton Jovanelli

Como Utilizar Power over Ethernet para Reduzir o Consumo de Energia

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

Universidade Federal de Alfenas

Disciplina: Introdução à Informática Profª Érica Barcelos

Engenharia de Requisitos

5. Resultados e Análises


3 Arquitetura do Sistema

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

5 Mecanismo de seleção de componentes

CENTRO UNIVERSITÁRIO ESTÁCIO RADIAL DE SÃO PAULO SÍNTESE DO PROJETO PEDAGÓGICO DE CURSO 1

Memória cache. Prof. Francisco Adelton

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P.

Analisando graficamente o exemplo das lâmpadas coloridas de 100 W no período de três horas temos: Demanda (W) a

2 Atualidade de uma base de dados

Isolamento de Recursos na Nuvem Por que isso e ta o importante?

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Processos e Threads (partes I e II)

4 Implementação e Resultados Experimentais

Engenharia de Requisitos Estudo de Caso

Inversores de Freqüência na Refrigeração Industrial

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

4 Arquitetura básica de um analisador de elementos de redes

Transcrição:

Introdução aos Clusters Verdes de Servidores Daniel Mossé, Julius C. B. Leite, Antonio Gil Borges de Barros Abstract Server clusters have been progressively more used in businesses and industry, as for example in search and electronic commerce systems. However, studies demonstrate that the associated energy expenditure of running them has increased dramatically world-wide. This not only implies in larger financial costs, but also may cause significant environmental problems. Energy expenses come not only from running the servers and other IT equipment. A significant part of the electricity bill is due to cooling. This Chapter will present an introduction to the techniques for the reduction of energy consumption in computer clusters (i.e., techniques to help design the so-called power-aware clusters ). The techniques presented here encompass automatic reconfiguration of the clusters (i.e., which servers will be on and which will be off), configuration of CPU frequencies, virtualization, and thermal modeling of the servers, racks, and rooms of servers/racks. Resumo Clusters de servidores têm sido cada vez mais empregados no dia a dia da economia. Exemplos de sua utilização são os sistemas de busca e de comércio eletrônico. Contudo, estudos demonstram que o gasto energético associado ao uso desses sistemas tem aumentado dramaticamente em escala mundial. Isso implica não somente em maiores dispêndios financeiros, mas também em significativos problemas ambientais. O gasto de energia não provem somente do consumo dos servidores e de outros equipamentos de TIC (Tecnologia da Informação e Comunicação). Uma parte significativa do consumo é associada aos gastos com resfriamento desses equipamentos. Este Capítulo discutirá uma introdução às técnicas de redução do consumo energético em clusters de computadores (ou seja, aquelas empregadas na construção dos chamados power-aware clusters ). Essas técnicas abrangem reconfiguração automática dos clusters (quais servidores serão ligados e quais serão desligados), configuração das frequências dos processadores (como controlar a velocidade de execução das tarefas), virtualização, e modelagem térmica dos servidores, bastidores (racks) e salas de servidores. 1.1. Introdução e motivação Este Capítulo trata dos conceitos associados à chamada Computação Verde aplicados aos clusters de servidores. Sinteticamente, essa área da Ciência da 1

D. Mossé, J.C.B. Leite, A.G.B. de Barros Computação trata de economia de energia nos equipamentos de TIC (Tecnologia da Informação e Comunicação) e, como consequência, da diminuição do impacto ambiental decorrente dos seus métodos de geração e utilização. Grandes clusters são cada vez mais comuns em nossa sociedade, como, por exemplo, os empregados em sistemas de busca e de comércio eletrônico e os empregados na implementação de computação em nuvem (cloud computing), bem como os pequenos clusters, existentes, por exemplo, no processamento de dados em universidades e pequenas empresas. Com os avanços tecnológicos e o aumento da dependência de sistemas de computação de alto desempenho, a cada ano aumenta a necessidade da utilização de clusters para atender a demanda do mercado. Consequentemente, aumenta também o consumo de energia necessária para o seu funcionamento. Um levantamento feito pela U.S. Environmental Protection Agency estimou a demanda de pico desses sistemas, no ano de 2007, em 7 gigawatts e que, se mantida a tendência, esse número saltará para 12 gigawatts em 2011 [EPA 2007]. A título de comparação, a usina de Itaipu gera aproximadamente 12 gigawatts [Itaipu 2009]. Muitos Data Centers estão sendo construídos perto de usinas geradoras de eletricidade para poder suprir as necessidades de energia para processamento e arrefecimento. As hidrelétricas são particularmente interessantes pois, além da energia elétrica, se localizam perto de rios que podem ajudar no sistema de resfriamento (com consequências ambientais, certamente). Um relatório da McKinsey & Co. [Forrest e Brill 2000] indica uma série de dados preocupantes em relação ao impacto ambiental causado pela geração de energia necessária à alimentação de centros de processamento de dados (Data Centers). A Tabela 1.1 mostra a situação mundial das emissões de dióxido de carbono para algumas indústrias, incluindo o percentual relativo a Data Centers e servidores. O mais preocupante é que o consumo energético dessa última indústria vem crescendo 9% ao ano, e é projetado que sua participação na emissão de dióxido de carbono em nível mundial ultrapassará a das companhias aéreas em 2020. Tabela 1.1. Percentagem mundial da emissão de dióxido de carbono para algumas indústrias Indústria Percentual Aviação 0,6 Estaleiros 0,8 Siderúrgicas 1,0 Data Centers 0,3 Apresentando os dados de emissão de dióxido de carbono em uma outra perspectiva, observando as emissões geradas pela alimentação de Data 2

Clusters Verdes Centers comparativamente às emissões totais de alguns países, podemos ter uma boa ideia do impacto dessa indústria 1. Isso está indicado na Tabela 1.2. Claramente, em função da dependência da sociedade em relação aos sistemas computacionais, é necessário o desenvolvimento de novas técnicas e produtos, envolvendo componentes energeticamente mais eficientes, controle inteligente do resfriamento de servidores e Data Centers, gerenciamento de consumo, entre outros tópicos. A IBM Global Technology Services, no Reino Unido, em recente relatório [McBrayne e Lanyon-Hogg 2007], prevê que a área de TIC tornar-se-á um alvo importante para economia de energia e para as preocupações ambientais, assim como hoje são mundialmente as indústrias de aviação e automobilística. Tabela 1.2. Emissões de carbono por país País CO 2 por ano (Mt) Argentina 142 Holanda 146 Malásia 178 Data Centers 170 Resultados preliminares do Balanço Energético Nacional 2009 (ano base 2008) [EPE 2009], da Empresa de Pesquisa Energética (MME/Brasil), indicam que, na oferta interna de eletricidade, 85,4% vêm de fontes renováveis, sendo 80% hidráulica. Assim, embora o Brasil tenha uma posição privilegiada relativamente ao resto do mundo, há fontes de preocupação. A construção de novas usinas hidrelétricas (e.g., Belo Monte, Santo Antônio, Jirau) tem causado grandes questões ambientais, e o impacto do aquecimento global no regime de chuvas nas regiões de represas traz preocupações. Adicionalmente, novas represas no Brasil só serão construídas em regiões afastadas dos grandes centros consumidores, o que aumenta a demanda para o uso de usinas térmicas (e.g., gás natural), que são mais poluidoras. Uma grande parte da energia necessária para alimentar esses clusters é, contudo, perdida. Isso porque esses sistemas são projetados para garantir qualidade de serviço (e.g., tempo de resposta exato ou médio para cada usuário) quando a carga for máxima. Assim, estima-se que eles operem usualmente somente entre 20% a 30% de sua capacidade, permanecendo ociosos na maior parte do tempo [Elnozahy 2009, Kusic et al. 2008, Meisner et al. 2009]. Medidas realizadas no Laboratório Tempo (www.tempo.uff.br) mostraram que o gasto de energia de servidores (computadores) ociosos pode facilmente atingir 55% daquele necessário à sua operação em carga máxima. 1 O Brasil emite aproximadamente 360 Mt de CO 2 por ano. 3

D. Mossé, J.C.B. Leite, A.G.B. de Barros Um outro ponto muitas vezes negligenciado é o gasto de energia associado ao resfriamento dos equipamentos de um Data Center. Salas climatizadas requerem o uso de sistemas de ar condicionado (AC), que normalmente são projetados e utilizados como se o sistema computacional operasse durante todo o tempo à sua carga máxima. Grandes clusters comerciais requerem milhares de processadores e uma grande área para a sua localização. Assim, naturalmente, surge um desbalanceamento de temperatura em diversas localidades do Data Center. Em diversos pontos da(s) sala(s), mesmo que o equipamento computacional ali localizado não esteja operando no máximo, a refrigeração atuará como se ele estivesse. Estima-se que para cada watt gasto com o processamento de dados, um outro watt é gasto com resfriamento. Dessa forma, o estudo das técnicas associadas à Computação Verde é economicamente e ambientalmente fundamental. Este Capítulo trata exatamente desse problema. O objetivo básico das técnicas apresentadas na literatura sobre computação verde é diminuir o gasto energético do cluster, mas mantendo a qualidade de serviço (QoS - Quality of Service; por exemplo, estabelecendo prazos para o término das tarefas) especificada em contrato (SLA - Service Level Agreement). Dessa forma, pode-se entender um tal cluster como um sistema de tempo real não crítico (soft real-time system). Nesse sentido, o fundamental é diminuir o tempo ocioso dos servidores ativos do cluster, estimado entre 70% a 80% para Data Centers típicos, diminuir o gasto energético, mas garantindo uma QoS pré-definida. Os trabalhos apresentados na literatura especializada podem ser classificados em 4 vertentes para efeito da discussão deste Capítulo: (i) Controle da frequência de operação do processador, através da técnica DVFS - Dynamic Voltage and Frequency Scaling; (ii) Configuração dinâmica, geralmente utilizando técnicas de otimização para definição dos servidores que devem estar operando para uma determinada carga; (iii) Virtualização, pelo uso de servidores virtuais associados às aplicações, que podem ser migradas entre as máquinas físicas; e, (iv) Controle térmico, via técnicas de distribuição de carga e atuação em sistemas de resfriamento ambiental (ar condicionado). 1.2. Composição de centros de processamento de dados Antes de discutirmos arquitetura de clusters de servidores na próxima Seção, vale expor os vários elementos que são necessários na construção de Data Centers. A título de ilustração, o metro quadrado de um Data Center varia de acordo com o tipo de sala requerida. Em Março de 2010, para sala cofre, cujas paredes corta-fogo são de aço e suportam inundações externas de até 1m de água, o custo é aproximadamente de R$ 130.000,00 o m 2. Para salas seguras, que suportam temperaturas externas podendo atingir 1000 C por 1 hora, o custo diminui para aproximadamente R$ 90.000,00 o m 2. Para salas convencionais, de alvenaria pura e simplesmente, o custo é de aproximadamente R$ 60.000,00 o m 2. As salas cofre e seguras estão normatizadas pela 4

Clusters Verdes ABNT, em normas número NBR 15247 e 10636. A Figura 1.1 exemplifica a disposição de bastidores em um Data Center típico. Figura 1.1. Organização de um Data Center [de Barros 2010] Além dos servidores, diversos outros elementos são importantes para a constituição de um Data Center: Piso técnico elevado faz parte do ambiente, em geral. O piso elevado possibilita que o ar condicionado seja direcionado para corredores frios entre as fileiras de racks, sendo o ar frio insuflado pelo piso. Em locais determinados há furos no piso e exaustores que puxam o ar criando um corredor frio. Do outro lado do rack ficam os corredores quentes, de onde sai o ar quente, que sobe, e os aparelhos de ar condicionado puxam e retiram o ar de dentro do ambiente para subsequente resfriamento. Esses pisos elevados e a criação de corredores frios é padrão em Data Centers, pois evitam equipamentos de resfriamento com potências muito superiores à necessidade de dissipação de potência do ambiente, diminuindo os custos de construção e operacional. Adicionalmente, pode haver um aproveitamento melhor do ambiente físico, aumentando o número de fileiras de racks; se aparelhos de ar condicionado normais fossem usados, os racks teriam que ser voltados para os equipamentos de ar condicionado com suficiente espaço para a circulação do ar frio. Os métodos de climatização são normalmente classificados em de precisão e de conforto. Para o primeiro, de precisão, não pode haver variação de temperatura (que deve ficar em torno dos 21 C) em mais do que 5% na temperatura requisitada, ou na umidade relativa do ar (que 5

D. Mossé, J.C.B. Leite, A.G.B. de Barros deve ficar em aproximadamente 50% e não poderá passar dos 85%), ao passo que no segundo tipo, o ar condicionado de conforto, a variação pode ser maior. Obviamente, deve-se colocar o maior número possível de equipamentos em ar condicionado de conforto, já que o custo do ar de precisão é aproximadamente 50% mais caro que o de conforto (em Março de 2010, R$115.000,00 e R$75.000,00, respectivamente, para um equipamento de 23 KVA que resfria aproximadamente 130 cores e outros equipamentos necessários 24x7x365 horas no ano 2 ). Há diversas configurações para colocação dos racks e das saídas de ar no piso elevado, como mostra a Figura 1.2. O ar pode vir de cima ou de baixo. O ar passa por dentro dos racks, mas pode ser retirado por trás ou por baixo (ou por cima). A facilidade e o custo de construção normalmente direcionam a configuração supracitada. Figura 1.2. Saídas de ar [Liebert 2007] Controle de acesso e CFTV (Circuito Fechado de Televisão) do ambiente, câmeras IP, e controles biométricos. Esses equipamentos estão 2 Ignoramos propositalmente neste capítulo introdutório qualquer quantificação de disponibilidade e de tolerância a falhas de equipamentos. 6

Clusters Verdes conectados a sistemas para armazenamento dos vídeos. Todos eles representam gastos adicionais de energia. Além da parte de arrefecimento, há também a parte de cabeamento (elétrico e lógico). Em um ambiente de Data Center, cada servidor de processamento tem de 2 a 4 cabos de rede, cada servidor de base de dados tem mais 2 cabos de fibra ótica ligados ao storage e ao SAN (Storage Area Network), cada servidor (base de dados ou processamento) tem ainda mais 2 cabos de energia. Portanto, considera-se entre 4 a 8 cabos por servidor que têm que ser colocados em local onde não causem dano ao equipamento e nem provoquem acidentes. Não raro, em um Data Center de 100 servidores há mais de 500 cabos de rede/fibras, mais de 200 cabos de energia, e todos passam sob o piso elevado. Fora os servidores utilizados pelas aplicações, há ainda no ambiente do Data Center infraestrutura para suportar o gerenciamento da rede, gerenciamento da segurança, vídeoconferência, telepresença, telefonia IP, e rede sem fio. Há também outros ambientes que compõem o Data Center como um todo: sala de controle e de segurança com display wall, ambiente para a equipe técnica de suporte, monitoramento e manutenção. Sistema de energia ininterrupta (no-break e grupo gerador) ficam fora da sala do Data Center, mas fazem parte da solução. No caso de nobreaks, é necessário ambiente com ar condicionado, podendo ser o de conforto, com piso elevado. A célula nesse caso não precisa ser sala cofre, talvez corta fogo ou, o mais utilizado, alvenaria. Finalmente, é importante a existência de sistemas de deteção precoce e controle de incêndio. Esses sistemas incluem equipamentos de monitoração do ambiente, com baixíssimo consumo de energia, mas que são necessários no ambiente. Além disso, um sistema de distribuição de gás FM200, interligado ao sistema de deteção precoce de incêndio, pode ser usado para rapidamente controlar eventuais incêndios no Data Center e estruturas associadas. 1.2.1. Leituras adicionais Os artigos a seguir podem ser consultados por leitores que desejarem se aprofundar no assunto: [42U 2010, CSU 2006, Hydeman 2006, Intel 2008, Intel 2010, Rasmussen 2008, Samson 2008]. 1.3. Organização e teste de um cluster A arquitetura de um web cluster pode assumir várias formas [Cardellini et al. 2002]. Para efeito da apresentação dos conceitos deste Capítulo, estamos assumindo uma arquitetura em 3 camadas (3-tiers), como a indicada na Figura 1.3. A primeira camada desse cluster é aquela composta pelo front-end (FE), que recebe e distribui as tarefas a serem executadas; a segunda é composta pelos processadores da aplicação; e a terceira camada é onde residem as bases de 7

D. Mossé, J.C.B. Leite, A.G.B. de Barros Figura 1.3. Arquitetura de um web cluster de servidores dados e os processadores para acessá-las. Embora quando colocados inicialmente em serviço esses sistemas possam ser homogêneos, naturalmente, em situações reais, os clusters tornam-se heterogêneos pela adição de novos servidores ou pela troca de servidores defeituosos. Não é nossa intenção discutir alternativas a essa arquitetura; isso está fora do escopo deste Capítulo. Contudo, é importante dizer que na maioria dos trabalhos apresentados na área essa arquitetura é modificada e somente 2 camadas são utilizadas. Isso é feito pois os autores desses trabalhos não querem tratar problemas associados a bases de dados 3, e procuram focar suas apresentações nos aspectos fundamentais das técnicas que estão propondo para gerenciamento energético de clusters. O tipo de arquitetura presumido neste Capítulo, com um elemento central (FE), é bastante indicado quando se deseja implementar políticas de controle global. Por exemplo, tipicamente, no FE são executados o gerenciador de configuração dinâmica, ações de balanceamento de carga, o controlador das frequências dos processadores dos servidores, e a medição de tempos de resposta de requisições, entre outras funções. Por exemplo, para a medição do tempo de resposta de requisições, os autores de [Bertini et al. 2007] modificaram um servidor Apache, acrescentando 3 Os maiores problemas são os de consistência da base de dados (depois que o servidor fica fora do ar, tem que se sincronizar com os outros servidores e atualizar a sua cópia da base de dados) e de gargalo (bottleneck) que afeta diretamente o desempenho dos sistemas de clusters considerados. 8

Clusters Verdes Figura 1.4. Medindo tempo de resposta em um cluster de servidores [Bertini et al. 2007] um rótulo à página solicitada e a seus objetos embutidos, de forma a poder identificar a chegada do último objeto de uma requisição web (diferentes objetos de uma página podem ser servidos por diferentes servidores do cluster), como indicado na Figura 1.4, retirada do artigo referido. Essa ação é facilitada pelo fato de haver um FE central. Problemas de escalabilidade do cluster levam a implementação do FE por soluções hierárquicas ou hardware dedicado (essas soluções estão fora do escopo deste Capítulo introdutório). Na avaliação de clusters como o da Figura 1.3, muitos trabalhos realizam experimentos com base em simulação, outros fazem suas análises com base na implementação de sistemas de tamanho reduzido (i.e., menos de 30 servidores). Para a geração de tráfego, o programa httperf [Mosberger e Jin 1998] é frequentemente utilizado. De forma a obter resultados mais próximos daqueles de uma instalação real, traces como o da Copa do Mundo de Futebol de 1998 são empregados; vários traces de tráfego da Internet podem ser obtidos em [LBNL 2010]. Contudo, esse ainda é um problema na área: a disponibilidade de traces mais realísticos, que possam adequadamente refletir o comportamento (em constante mudança) de diversas classes de usuários. Adicionalmente, os benchmarks mais citados na literatura são TPC-W [TPPC 2010], Rubis [OW2 Consortium 2010] e Trade6 [IBM 2010]. TPC-W é um benchmark transacional para comércio eletrônico, onde a carga é oferecida em um ambiente de Internet controlado, que suporta múltiplas sessões de browsers, geração de páginas dinâmicas, conexões seguras, entre outras características. Rubis é um protótipo de servidor web que modela um ambiente de leilão, similar ao do e-bay ou MercadoLivre. Trade6 é uma aplicação que simula compra 9

D. Mossé, J.C.B. Leite, A.G.B. de Barros e venda de ações, integrada ao ambiente WebSphere da IBM. 1.4. Conceitos introdutórios De forma a poder discutir as soluções para power-aware clusters encontradas na literatura, precisamos apresentar alguns conceitos iniciais. Assim, nesta Seção veremos algumas noções de sistemas de tempo real, de consumo energético, e de controle de frequências em processadores. 1.4.1. Sistemas de tempo real Um sistema computacional de tempo real (STR) é aquele em que os resultados não devem ser apenas corretos do ponto de vista lógico, mas também devem ser produzidos antes de um prazo pré-definido. Tipicamente, um STR recebe requisições do ambiente para executar tarefas, adquire os dados necessários (do ambiente, via sensores ou de bases de dados), faz algum tipo de processamento, e produz resultados desse processamento dentro dos prazos definidos pelo usuário. Um STR, como a maioria dos sistemas de computação, é complexo, pode ser distribuído ou não, utiliza diferentes subsistemas de hardware e software (e.g., sistemas de aquisição de dados e protocolos de comunicação), e cada um desses subsistemas deve produzir resultados de forma a atender uma restrição temporal. Obviamente, isso coloca uma carga extra sobre o Sistema Operacional (SO). Na área de tempo real, as unidades escalonáveis (sejam elas processos ou threads) são comumente chamadas de tarefas. As tarefas de um STR podem ser divididas em 2 classes: periódicas e aperiódicas. Tarefas periódicas são colocadas na fila dos processos prontos (ativadas) em intervalos fixos, chamados períodos. Por exemplo, uma tarefa associada a uma atualização de uma base de dados coletados do ambiente via sensores é geralmente uma tarefa periódica. Tarefas aperiódicas podem ser ativadas a qualquer momento, por exemplo, para o processamento de um alarme ou para processamento de uma requisição de atualização via pedido feito através da web. Normalmente, uma tarefa é caracterizada por um tripla: (C, T, D). C é o tempo máximo de execução da tarefa (WCET - Worst Case Execution Time); T é o seu período, e D é o prazo (relativo à ativação). Na maioria das análises de escalonabilidade de tarefas periódicas, assume-se que T = D, e no caso de tarefas aperiódicas não é necessário definir T. T e D são dependentes da aplicação; C é condicionado pela implementação (incluindo as características de hardware), e tem que ser avaliado pelo projetista via uma ferramenta específica ou através de testes. Há momentos em que o processador estará ocupado executando tarefas e outros nos quais o processador se encontrará ocioso. Estes espaços vazios (ou seja, onde há ociosidade do processador) são chamados de folga (slack), e podem ser utilizados por uma política de economia de energia. Um STR pode ser de dois tipos: crítico (hard real-time), ou não-crítico (soft real-time). STRs críticos são aqueles em que o seu mau funcionamento pode 10

Clusters Verdes causar grandes perdas econômicas ou humanas. Por exemplo, aqueles empregados em aviônica ou em automóveis são sistemas críticos, pois seu mau funcionamento pode levar à morte de passageiros. Sistemas não-críticos são empregados quando a perda de prazos pode ser tolerada, como por exemplo nos clusters de servidores discutidos neste Capítulo. A perda do prazo estipulado de uma requisição pode ser um aborrecimento para o usuário ou uma pequena penalidade financeira direta ou indireta, mas não é razoável admitir que esse prejuízo seja tão grave quanto o do caso anterior. A palavra-chave na área de tempo real crítico é previsibilidade. Isto significa que devem ser dadas garantias de que todas as execuções de tarefas irão ocorrer antes de prazos especificados. Garantias, neste contexto, devem ser expressas através de uma análise matemática. Utilizar processadores rápidos pode ser suficiente em muitos casos, mas isso não garante que em uma situação especial prazos não sejam perdidos, com graves consequências para o sistema. Para oferecer garantias, hipóteses devem ser feitas em relação ao ambiente do sistema. Por exemplo, em sistemas críticos, a carga oferecida deve ser bem quantificada, bem como os tempos envolvidos no processamento desta carga. Isto significa que todos os WCET das tarefas devem ser conhecidos. Isso não é um problema trivial, tendo em conta não apenas os caminhos diversos pelos quais um programa pode passar em sua execução, mas também pelo fato do WCET ser dependente do hardware, da linguagem e das técnicas de programação utilizadas. Por exemplo, caches e loops ilimitados são fontes de imprevisibilidade. Além disso, se o sistema tiver de ser tolerante a falhas (TF), dependendo das técnicas empregadas, tempo extra de processamento deve ser considerado e, também, levado em conta na análise de escalonabilidade. Em sistemas não-críticos, normalmente, controle de admissão de tarefas/requisições e comportamentos médios podem ser especificados. Os dois algoritmos mais importantes para escalonamento de tarefas em STRs são o RM (Rate Monotonic) e o EDF (Earliest Deadline First) [Liu e Layland 1973]. O primeiro desses algoritmos é um esquema de atribuição de prioridades fixas às tarefas, e assume que essas tarefas são periódicas. No segundo algoritmo, tarefas aperiódicas e periódicas são admitidas, e a atribuição de prioridades é feita de forma dinâmica. Não iremos nos aprofundar no estudo desses algoritmos; os leitores interessados encontram uma boa descrição em [Burns e Wellings 2009]. Sistemas de tempo real não críticos, por outro lado, podem funcionar com SOs onde o escalonador de tarefas não ofereça garantias temporais (e.g., Linux, Windows Server). No entanto, é esperado algum tipo de contrato entre o cliente e o provedor do serviço, onde uma especificação probabilística para a qualidade do serviço seja oferecida (e.g., 98% das requisições devem ter seus prazos atendidos). 11

D. Mossé, J.C.B. Leite, A.G.B. de Barros 1.4.2. Consumo e controle de potência em processadores Vários processadores atuais permitem o gerenciamento do consumo de potência através da técnica de DVFS (Dynamic Voltage and Frequency Scaling). Essa técnica é baseada na constatação que para circuitos CMOS a potência do processador é proporcional ao quadrado da tensão (voltagem) de operação: P V 2 f. Adicionalmente, V e f mantêm uma relação de proporcionalidade, e portanto pode-se aproximar o consumo de potência pela relação P f 3. Além disso, a energia consumida é obtida pela integral no tempo da função/curva P. Pode-se também considerar que E = P t, quando definimos P como a potência média consumida, fazendo com que a energia consumida tenha uma relação quadrática com a frequência utilizada, ou seja, E f 2. Sendo o tempo de execução inversamente proporcional à frequência de operação, a simples diminuição do valor da frequência, embora reduzindo o gasto de potência, não implicará em economia energética. Contudo, a redução da tensão de alimentação pode oferecer um ganho quadrático em termos de economia de energia. Nos circuitos reais, entretanto, uma diminuição da tensão de alimentação obriga a uma diminuição na frequência de operação. Dessa forma, nesse texto, quando falarmos sobre incremento/decremento de frequência está implícito que a tensão de operação também é alterada. A mudança da frequência de operação, contudo, tem um custo. Para a realização dessa operação, uma certa potência é consumida (desprezível), e para a sua efetivação são gastas algumas unidades de tempo. Dependendo da localização do regulador de voltagem (dentro ou fora da UCP), essa transição pode levar entre 5 microssegundos (e.g, Core i7 da Intel) até centenas de microssegundos ou milissegundos (e.g., nos AMD Athlon 64) [Hsu e Feng 2005]. Na implementação de um sistema com controle DVFS o projetista fica limitado ao número de frequências discretas disponíveis no processador. Por exemplo, um dos processadores AMD Athlon 64 3800+ oferece 5 frequências de operação: 1,0GHz, 1,8GHz, 2,0GHz, 2,2GHz, e 2,4GHz (ver Tabela 1.3 abaixo para outros processadores da mesma família AMD Athlon 64). Certamente, a possibilidade de controlar o gasto de potência dessa maneira é um grande avanço. Contudo, imaginemos a seguinte situação. Seja um sistema computacional (usando o processador acima) que, para tratar adequadamente a carga sendo oferecida (i.e., respeitando algum critério de QoS), pode operar em uma frequência de 1,0GHz. Vamos agora admitir que a carga cresça em 10%; nessa situação, o sistema tem que aumentar a frequência para continuar respeitando a QoS requisitada. Contudo, eleva-se a frequência do processador à próxima frequência possível, que é 1,8GHz. Sendo o gasto de potência relacionado à frequência por uma relação cúbica, ela irá ser multiplicada por 1,8 3 = 5,8. Ou seja, um gasto suplementar de potência necessariamente ocorrerá, pela obrigatoriedade do processador ser configurado em 1,8GHz. Na situação acima descrita, uma perda de QoS poderia ser admitida se o critério primordial fosse minimizar o gasto energético. Contudo, alguns resultados foram apresentados em [Ishihara e Yasuura 1998] que permitem fazer o 12

Clusters Verdes Tabela 1.3. Alguns processadores AMD Arquitetura Frequência máxima Número de (GHz) frequências AMD Athlon 64 X2 3800+ 2,0 3 AMD Athlon 64 3800+ 2,2 5 AMD Athlon 64 3500+ 2,4 4 AMD Athlon 64 3800+ 2,4 5 AMD Athlon 64 X2 5000+ 2,6 6 processador operar na frequência teórica (ideal) desejada. Sinteticamente, eles demonstram que: Se um processador somente pode utilizar um número discreto de frequências, o escalonamento com o uso máximo de duas frequências, para qualquer restrição temporal, minimiza o consumo de energia; Se um processador somente pode utilizar um número discreto de frequências, aquelas que minimizam o consumo de energia, para uma dada restrição temporal, são as imediatamente vizinhas à frequência ideal. Esses resultados permitem viabilizar um processador ideal que suportaria um esquema de frequências contínuas. Vamos admitir que, para uma dada carga, o sistema devesse operar em uma frequência f ideal para atender às suas restrições temporais e minimizar o gasto energético. Vamos também admitir que durante um período T, N ciclos de máquina devam ser executados nessa frequência f ideal. Para tornar a explicação mais clara, vamos olhar a Figura 1.5. Nesse caso, poderíamos ter um desempenho equivalente se o sistema executasse por N 1 ciclos na frequência f, e por N 2 ciclos na frequência f +, onde, obrigatoriamente, N = N 1 +N 2, e f + e f são frequências reais do processador, imediatamente acima e abaixo de f ideal, respectivamente. Para encontrar o ponto t onde o chaveamento de f para f + deve ocorrer, basta resolver a equação t f +(T t) f + = T f ideal (1) onde, à exceção de t, todas as variáveis são conhecidas. Para viabilizar esse esquema, deve-se construir uma rotina (de alta prioridade) que executa com um período de T unidades de tempo. Conhecida a frequência ideal de operação para uma dada carga, a frequência do processador é alternada de f a f + nos instantes t + kt(k = 0,1,...) e de f + a f nos instantes kt(k = 1,2,...). Adicionalmente, T e t deverão ser definidos em função da dinâmica de variação da carga, e levando em consideração o tempo de mudança entre frequências em um processador real (da ordem de 13

D. Mossé, J.C.B. Leite, A.G.B. de Barros Figura 1.5. Simulando frequências contínuas dezenas de microssegundos). Esse tipo de controle foi utilizado, por exemplo, em [Bertini et al. 2009]. Como observações finais, deve-se mencionar que: 1. A solicitação de alteração de frequências ocorre através do SO, mas deve haver suporte na placa-mãe para essa operação. No caso da AMD, a técnica é chamada de Cool n Quiet [AMD 2010], e no caso da Intel é chamada de SpeedStep [Intel 2004]. 2. Nos novos processadores, com múltiplos cores, há a possibilidade de controlar a frequência de cada um deles individualmente. 3. Nos instantes t + kt pode-se chavear de f + a f para cada tarefa, mas chaveando-se de f a f + pode-se economizar mais energia em geral. Esse comportamento é uma extensão dos trabalhos PACE [Lorch e Smith 2004], GRACE [Yuan e Nahrstedt 2003], e PPACE [Xu et al. 2004], pois é um comportamento otimista: as tarefas podem terminar prematuramente 4, e assim elas já teriam executado na frequência e voltagem mais baixas por mais tempo, economizando energia. 4 Normalmente, os sistemas de tempo real têm que garantir que as tarefas terminarão dentro dos prazos requisitados e, assim, são dimensionados para o máximo de tempo que a tarefa pode levar a executar; frequentemente as tarefas executam por aproximadamente 10% do tempo máximo [Ernst e Ye 1997], ou até menos [Rusu et al. 2004]. 14

Clusters Verdes 1.4.3. Uma Interface para configuração de potência Apesar de os modelos iniciais levarem em consideração somente uma única fonte de consumo de energia pela UCP, logo se notou que existem outras fontes de consumo em processadores e em sistemas de computação em geral. Em relação ao processador, em [Zhu et al. 2004] a energia foi modelada com a relação quadrática mencionada acima e, além disso, notou-se que o consumo pode ser dividido em duas partes, uma que depende diretamente da frequência, e uma parte que independe da frequência de operação. A primeira é o consumo suplementar que ocorre quando o processador está em operação (potência dinâmica), e a segunda corresponde ao consumo do processador desocupado, devida às polarizações internas (potência estática). Devido à complexidade dos microprocessadores hoje em dia, existem vários estados de diferentes consumos de potência que são definidos por padrões/normas. O padrão mais adotado é a ACPI (Advanced Configuration and Power Interface, ou Interface Avançada para Configuração de Potência), que especifica os estados que o SO pode usar; obviamente, esses estados têm que ter suporte do hardware, particularmente da placa-mãe e do processador. O mapeamento das capacidades do hardware é feito pelos drivers do SO. A interface ACPI determina 4 estados globais do sistema, chamados G-states: G0 Working (ativo), G1 Sleeping (suspenso, hibernando), G2 Soft-off (o processador está parado, mas pode ser reiniciado via interrupções de hardware dos dispositivos de entrada e saída), e, finalmente, G3 Mechanical off, que é quando a máquina está realmente desligada. Como se pode perceber, os números menores indicam maior gasto de potência. O padrão ACPI ainda prevê uma hierarquia de estados de menor potência, dependendo da atividade no processador. Particularmente interessante são os sub-estados dos estados G0 (Working), que são chamados de C-states, e G1 (Sleeping), que são chamados S-states. O processador pode estar em vários C-states, a saber, C0 (execução normal, atividade plena), C1 (ocioso), C2 (menor consumo de potência do que C1, mas com mais latência para se retornar ao estado ativo), ou C3 (menor consumo de potência do que C2, mas com mais latência para se retornar ao estado ativo). O estado C0 (ativo) é por sua vez sub-dividido em vários estados de processamento (P-states, correspondendo às diferentes frequências possíveis do processador), sendo o P0 o de maior desempenho e consumo energético, e o Pn o de menor desempenho e consumo energético. Os possíveis S-states vão de S0 a S4, sendo os já definidos (e mais importantes) o estado S3, também chamado de suspend, e o estado S4, ou hibernate. O estado G2 também é chamado de S5. Exemplos de processadores, com suas frequências e respectivas voltagens, em cada um dos estados definidos pela ACPI são mostrados nas Tabelas 1.4 e 1.5. 15

D. Mossé, J.C.B. Leite, A.G.B. de Barros Tabela 1.4. AMD Phenom II [AMD 2009] Frequência (GHz) Voltagem (V) Estado 3,0 1,425 P0 2,3 1,325 P1 1,8 1,225 P2 0,8 1,150 P3 Tabela 1.5. Intel Pentium M, frequência máxima 1,6GHz [Chen 2010] Frequência (GHz) Voltagem (V) Estado 1,6 1,484 P0 1,4 1,420 P1 1,2 1,276 P2 1,8 1,164 P3 0,8 1,036 P4 0,6 0,956 P5 1.4.4. Wake-on-LAN Quando se faz o gerenciamento de clusters, é obviamente necessário ligar e desligar servidores. Mais especificamente, é necessário passá-los de um estado a outro. Como vimos na Seção 1.4.3, quando se está num estado de baixo consumo energético, pode-se sair deste via interrupções de entrada e saída. Normalmente, essas interrupções são feitas via o mecanismo de Wakeon-LAN, ou seja, a placa de rede fica ligada, esperando a recepção de um pacote de rede com dados (bits) específicos. Quando chega esse pacote, a placa de rede passa a informação para a placa mãe que desperta a UCP, retornando-a a um estado de atividade maior. Vale mencionar que nos processadores Athlon 64 o consumo de potência quando o servidor está em estado de Wake-on-LAN é de aproximadamente 5W, quando ocioso é de aproximadamente 70W, e quando em frequência e voltagem máximas é de 140W. 1.5. Trabalhos iniciais em economia de energia As pesquisas na área de economia de energia não foram iniciadas, obviamente, em clusters de servidores. Inicialmente, os pesquisadores concentraramse em sistemas de um único processador. Nessa Seção vamos apresentar o primeiro trabalho na área, o primeiro trabalho que combinou gerenciamento de energia com características temporais, e um trabalho representativo na área de sistemas embarcados. Em todos esses casos a técnica de DVFS é explorada, a partir de política embutida no escalonador do sistema operacional. 16

Clusters Verdes 1.5.1. O artigo seminal de Weiser, Welch, Demers e Shenker O primeiro trabalho publicado na área de economia de energia em sistemas computacionais, envolvendo técnicas controladas pelo sistema operacional, foi [Weiser et al. 1994]. Nele os autores propõem três algoritmos de escalonamento de processos para atuar no controle de DVFS do processador. Para os testes apresentados no artigo, os autores realizaram simulações com base em dados de traces de um escalonador Unix, obtidos de várias horas de execução de estações de trabalho. O primeiro algoritmo, OPT, analisa todo o trace e atua nos momentos de escalonamento para diminuir a frequência de operação, de forma a reduzir os períodos ociosos do processador. O segundo algoritmo, FUTURE, olha somente uma pequena janela de tempo a frente, e toma a decisão que otimiza o gasto energético. O terceiro algoritmo, PAST, analisa o ocorrido em uma janela de tempo passada, e atua no controle de frequência admitindo que o futuro próximo se comportará como o passado imediato. Claramente, os dois primeiros algoritmos, por dependerem de conhecimento perfeito do futuro, não são implementáveis. Contudo, servem de referência para comparação com PAST, o único dos algoritmos que é implementável. É interessante observar como a qualidade de serviço é tratada. No único algoritmo realizável, PAST, a proposta é observar quantos ciclos de instrução deixaram ou não de ser executados na última janela e atuar na frequência de operação. Um esquema de banda (deadzone) é empregado para garantir estabilidade no controle (evitar comportamento oscilatório). Os gastos de potência (normalizados) dos algoritmos desse artigo estão indicados na Figura 1.6, para 3 diferentes pontos de operação (voltagens) e em função do período de ativação do mecanismo de ajuste de frequências. O algoritmo OPT é insensível a esse último parâmetro, já que olha todo o trace. É interessante observar que PAST tem melhor desempenho que FUTURE, pois ciclos não executados na última janela podem ser transferidos para o intervalo seguinte. A medida que o intervalo diminui, a velocidade da UCP é ajustada mais frequentemente e, assim, acompanha melhor a carga oferecida, mas gastando mais energia. Um outro ponto interessante do artigo é a classificação das tarefas a serem executadas em diferentes classes (background, periódicas e foreground). Os autores propõem que para a execução de tarefas do tipo background não há necessidade de aumentar a velocidade do processador. Tarefas periódicas, que apresentam uma carga constante e a indicação de um prazo, podem ser executadas com velocidade suficiente para atender esse último. Quando há uma combinação dos diversos tipos de tarefas, a sugestão é escalonar primeiro as tarefas periódicas, acomodar as do tipo foreground na sequência e, finalmente, encaixar as tarefas do tipo background. 17

D. Mossé, J.C.B. Leite, A.G.B. de Barros Figura 1.6. Gasto de potência: OPT, FUTURE e PAST [Weiser et al. 1994] 1.5.2. Combinando gerenciamento de energia e tempo real Um dos primeiros artigos que combinou explicitamente DVFS com os problemas de tempo real foi publicado no ano 2000 [Mossé et al. 2000], e propôs 3 algoritmos para economizar energia enquanto respeitava os prazos das tarefas. Esses três algoritmos, Proportional, Greedy, e Statistical, tratam de distribuir o tempo extra antes do prazo limite entre as tarefas de maneiras distintas. O Proportional distribui proporcionalmente ao pior caso do tempo de execução de cada tarefa, enquanto o Greedy dá todo o tempo extra para a próxima tarefa a ser executada, e o Statistical distribui o tempo extra baseado na média do tempo de execução das tarefas. Esse trabalho inicial tratava somente de conjuntos de tarefas com um único prazo em comum, presumia que as frequências do processador eram continuamente sintonizadas entre 0 e 1, e não admitia preempção das tarefas. Impulsionados por esse trabalho inicial, mesmo sendo um trabalho teórico, os mesmos autores sugeriram métodos mais formais para provar que há algoritmos que são ótimos do ponto de vista de redução de energia em sistemas de tempo real [Aydin et al. 2001, Aydin et al. 2004]. Nesses trabalhos, ainda um único servidor é considerado, mas leva-se em conta que tarefas podem ser interrompidas para executar tarefas de maior prioridade. Definindo um escalonamento ótimo, que também não é realista, os autores sugerem heurísticas com desempenho próximo ao algoritmo ótimo, com um parâmetro de agressividade (otimismo) que se pode variar. Quanto mais otimista o algoritmo, mais devagar o sistema configura a frequência do processador. Intuitivamente, dessa forma, mais energia (em média) seria economizada no sistema. Entretanto, 18

Clusters Verdes quando o algoritmo é otimista demais, algumas vezes o sistema executa tarefas tão devagar que fica sendo necessário executar outras tarefas muito mais rapidamente, elevando-se desnecessariamente a frequência do processador, causando maiores gastos de energia no cômputo geral. 1.5.3. Uma proposta em sistemas embarcados O artigo de [Pillai e Shin 2001] propõe algoritmos para controle de gasto energético em sistemas de tempo real embarcados, sistemas esses que muitas vezes são do tipo tempo real crítico. Nesse trabalho os autores apresentam abordagens estáticas (off-line) e dinâmicas (on-line) para sistemas de tempo real críticos. Na abordagem estática seleciona-se a menor freqüência operacional possível que ainda permita ao escalonador, no caso EDF ou RM, garantir todos os prazos do conjunto de tarefas. A redução é feita com base nos testes de escalonabilidade conhecidos para esses dois algoritmos, pela introdução de um fator de escala (relação entre a freqüência de operação pretendida e a freqüência máxima permitida pelo processador) para os tempos de execução máximos das tarefas. Na abordagem dinâmica, ou seja, para o caso em que as tarefas executam por menos tempo que o seu WCET (Worst Case Execution Time), são apresentados dois algoritmos: o Cycle Conserving, desenvolvido para escalonadores RM e EDF, e o Look Ahead, desenvolvido somente para EDF. Ambos os algoritmos se baseiam no cálculo da utilização do processador ao término da execução de cada tarefa, de forma a recuperar quaisquer ciclos (previstos no WCET) não utilizados. A diferença entre esses algoritmos é que no Look Ahead é assumida uma abordagem otimista, mais agressiva, onde, no início da execução da tarefa, ela é processada em uma frequência inferior, podendo essa freqüência ser aumentada para garantir o atendimento à restrição temporal (como mencionado acima e sugerido nos trabalhos de [Lorch e Smith 2004, Xu et al. 2004, Yuan e Nahrstedt 2003]). Para se ter uma ideia de como essa proposta funciona, vejamos o caso mais simples, o da abordagem off-line, para um escalonador EDF. Sob determinadas condições (ver, por exemplo, [Burns e Wellings 2009]), um conjunto de n tarefas é escalonado pelo algoritmo EDF se a condição indicada na Equação 2 for atendida (as variáveis foram descritas na Seção 1.4.1), admitindo operação na frequência máxima do processador, f max, e sem considerar overheads (nesse exemplo, f max é normalizada e igual a 1): n C i 1 (2) i=1 T i Admitindo um conjunto de tarefas que não usa o processador 100% do tempo, se a frequência do processador for alterada para f = α f max, 0 α 1, o tempo de execução das tarefas será agora de C i /α. Ou seja, o processador será operado em uma frequência menor, gastando menos potência, mas as tarefas levarão mais tempo para serem completadas. Assim, para garantir que a esca- 19

D. Mossé, J.C.B. Leite, A.G.B. de Barros lonabilidade do sistema será mantida, é necessário e suficiente que a condição estabelecida pela Equação 3 seja satisfeita: n C i α (3) i=1 T i A Figura 1.7 exemplifica o método estático, onde durante toda a operação o processador executará em somente uma das suas possíveis frequências. Para esse exemplo, um processador teórico com 3 frequências (normalizadas) é utilizado; são elas 1,00, 0,75 e 0,50. O conjunto de tarefas desse exemplo está indicado na Tabela 1.6. Um simples cálculo, utilizando a Equação 3, demonstra que nessa situação é factível operar o processador em uma frequência 75% do valor da frequência máxima, atendendo aos prazos das tarefas, e economizando energia. Figura 1.7. Exemplo de DVFS estático com EDF [Pillai e Shin 2001] Tabela 1.6. Conjunto de tarefas para o exemplo da Figura 1.7 Tarefa WCET (ms) Período (ms) Prazo (ms) T1 3 8 8 T2 3 10 10 T3 1 14 14 20

Clusters Verdes 1.5.4. Leituras adicionais Os artigos a seguir podem ser consultados por leitores que desejarem se aprofundar no assunto: [Ellis 1999, Kim et al. 1999, Novelli et al. 2005]. 1.6. Economizando energia em clusters Nesta seção descreveremos trabalhos representativos que especificamente tratam de economia de energia em clusters. 1.6.1. O primeiro trabalho na área O primeiro trabalho publicado sobre configuração dinâmica em clusters de servidores foi do grupo da Universidade de Rutgers, EUA, [Pinheiro et al. 2001]. A ideia central do artigo é desenvolver técnica para dinamicamente ligar um servidor (nó), e dessa forma configurar o sistema para tratar eficientemente a carga crescente, e desligar servidores para diminuir o consumo de potência quando a capacidade de processamento do cluster for superior aquela necessária para tratar a carga. A proposta dos autores é concentrar (desbalancear) a carga em alguns servidores, para poder desligar outros e gastar menos potência. Gastar menos potência implica em menores gastos com o sistema de resfriamento (cooling), e, obviamente, acarreta em economia de energia. Nesse trabalho, um cluster homogêneo é assumido, e a técnica de DVFS não é empregada. Basicamente, o algoritmo proposto executa periodicamente, e aceita a remoção de um nó do sistema se a degradação do desempenho esperada para qualquer aplicação executando nesse nó é menor do que um limiar pré-definido (degrad), e o período desde a última reconfiguração é maior do que um valor definido por outro limiar (elapse). A adição de um nó é necessária se a degradação atual do desempenho é pelo menos degrad, e o tempo decorrido desde a última reconfiguração é maior do que elapse. A implementação do algoritmo é centralizada, e a previsão da demanda por recursos do sistema (UCP, rede e discos; cada nó envia informação ao nó controlador central) é feita com base em uma média exponencial amortizada [Makridakis et al. 1997]. Um esquema de migração de aplicações é necessário, tanto para desbalancear o cluster (desligamento), quanto para ligar um nó (e balancear o processamento entre os nós ativos). A Figura 1.8 abaixo mostra o resultado do consumo de potência de um cluster com 8 máquinas, para uma dada carga oferecida, e para duas políticas. Na primeira, Static Configuration, nenhuma alteração de configuração é realizada. Na segunda, Dynamic Configuration, a configuração do cluster é dinamicamente adaptada para atender às variações da demanda. Uma economia de energia de 43% é reportada, indicando o grande potencial de uma política que adapta a configuração do cluster em função da carga oferecida. 1.6.2. Juntando configuração dinâmica e DVFS O trabalho apresentado em [Elnozahy et al. 2002] foi o primeiro a discutir o uso conjunto de DVFS e configuração dinâmica em clusters de servidores, isto 21

D. Mossé, J.C.B. Leite, A.G.B. de Barros Figura 1.8. Consumo para servidor WWW com elapse = 200s [Pinheiro et al. 2001] é, a determinação de quais servidores estarão ligados e quais serão desligados, e em que frequências operarão. Nesse trabalho, os autores cunharam o acrônimo VOVO para essa última operação, significando Vary-On / Vary-Off, e apresentaram 5 políticas globais (cluster wide) de gerenciamento de potência para clusters de servidores homogêneos. É importante frisar que nesse trabalho a avaliação de desempenho foi feita com base em simulação, o que reduz em muito a quantidade de problemas a serem tratados, mas o que também diminui a fidedignidade dos resultados, pois ignora vários detalhes que existem em uma implementação real. As 5 políticas propostas e suas formas de operação são descritas a seguir. Nas duas primeiras, todos os nós estão ativos durante toda a operação do sistema, mesmo que a carga do sistema seja baixa. Independent Voltage Scaling (IVS): cada nó do cluster gerencia independentemente (localmente) o seu consumo de potência, fazendo uso de DVFS. Não há nenhuma comunicação de estado entre nós, e nem para um controlador central. Como há uma política de balanceamento de carga, os nós operam, aproximadamente, na mesma frequência. Variações nas frequências de operação entre os nós são possíveis, em virtude de flutuações na carga. Coordinated Voltage Scaling (CVS): cada nó reporta a um nó central a sua frequência de operação. Esse nó central periodicamente calcula a 22

Clusters Verdes frequência média de operação desses diversos servidores, e envia essa informação a todos eles. Cada um dos nós servidores procura, então, operar em uma pequena faixa de frequências em torno dessa frequência média difundida. Essa política deve fornecer um melhor resultado em termos do consumo de potência, já que um cluster de servidores operando em uma frequência f é mais eficiente que um outro operando com os nós em frequências distintas mas com média f, dadas as relações de frequência e potência descritas na Seção 1.4.2. VOVO: nesse caso, servidores serão ligados ou desligados conforme a variação da carga oferecida ao sistema. Um balanceamento de carga existe entre os nós ativos; cada um desses nós informa a um controlador central a sua utilização. Neste caso, os servidores ativos não tem política de DVFS. VOVO-IVS: é uma combinação das técnicas VOVO e IVS acima descritas. VOVO-CVS: é uma combinação das técnicas VOVO e CVS acima descritas. Um novo nó é ligado quando é observado que os nós operacionais deverão funcionar em uma frequência acima da frequência máxima do processador. De forma similar, se é observado que a frequência de operação deverá ficar abaixo da frequência mínima do processador, um dos nós será desligado. Os autores propõem uma modelagem analítica para otimizar o consumo de potência, onde assumem que a potência consumida em cada nó é uma função cúbica da frequência de operação. A frequência de operação é ajustada em função da utilização dos processadores dos nós (limiares superior e inferior são utilizados: 95% e 85%, respectivamente). Como resultado dessa modelagem, para uma dada configuração de n servidores, são calculadas em que frequências de operação o cluster deverá se encontrar quando tiver de ser reconfigurado para n 1 ou n+1 nós. Não há o uso direto de alguma métrica de qualidade de serviço (e.g., tempo de resposta); o trabalho apresentado presume que essa QoS será obtida mantendo-se os processadores entre os limiares de utilização acima referidos. A Figura 1.9 apresenta resultados de gasto energético para as 5 técnicas citadas, para dois workloads distintos (um da área de Finanças e outro dos jogos Jogos Olímpicos de inverno de 1998), dois custos fixos distintos (potência estática de 6W e 8,6W), e traces cobrindo um período de 24 horas. Nessa figura é importante observar o ganho obtido por IVS e CVS sobre um sistema sem nenhum controle de potência. Adicionalmente, um novo salto ocorre quando configuração dinâmica é adicionada a esses mecanismos. Os autores também ressaltam que, em função de características dos traces, no último experimento não há um ganho claro pela adição de VOVO a IVS e CVS. 23

D. Mossé, J.C.B. Leite, A.G.B. de Barros Figura 1.9. Energia consumida em 4 experimentos distintos [Elnozahy et al. 2002] 1.6.3. Introduzindo heterogeneidade e uma implementação real O trabalho apresentado em [Rusu et al. 2006] foi um dos primeiros trabalhos a tratar clusters heterogêneos baseados em medição e não em simulações. Desta forma, os detalhes que normalmente eram omitidos nas simulações, como por exemplo o tempo e a energia requeridas para se iniciar um servidor depois de desligado, começaram a surgir como fatores importantes. De fato, notou-se que o tráfego de rede devido à troca de informações de carga e resultados de violações de prazos não é um fator significativo em ambientes de clusters para tráfego de Internet. Na organização proposta, o cluster tem um front-end que serve de distribuidor de carga, bem como é o nó responsável pelo cálculo da frequência aproximada a ser usada em cada servidor. Entretanto, cada um dos servidores executa uma política de DVFS local, que depende do número e tipo de requisições, bem como do tempo de execução das requisições. Uma política de pilha para ligar e desligar é adotada nesse trabalho: o próximo servidor a ser ligado é o que requer menor potência para processar as requisições que excedem a capacidade do cluster na configuração corrente. O front-end desliga o último servidor a ser ligado, ou seja, o que tem a maior potência dissipada entre os servidores ativos. O front-end distribui as requisições web aos servidores da camada 2 levando em consideração a capacidade de cada servidor, que foi medida a priori para levantar quantas requisições e de que tipo cada servidor tem a habilidade 24

Clusters Verdes de processar por segundo, de várias formas diferentes, a saber: (i) distribuição por carga; (ii) distribuição por custo de cada requisição; e, (iii) distribuição por energia consumida pelas requisições. Um dos problemas identificados foi a medição das métricas sugeridas nos itens (i) a (iii); por exemplo, no cálculo da carga, se os servidores forem muito rápidos em relação ao tempo de execução das requisições, a carga pode ser subestimada, causando que a frequência do servidor seja configurada abaixo do necessário. Esse problema pode ser solucionado calculando cada métrica em um intervalo suficientemente longo, causando, contudo, perda da informação de granularidade fina sobre a carga observada. Os resultados reportados (ver Figura 1.10) mostram que a configuração dinâmica é a que tem a maior contribuição para economia de energia, pois desliga os servidores ociosos. Nota-se na figura que quando a carga é zero, o cluster consome aproximadamente 32W, pois cada um dos servidores Athlon 64 utilizados consome aproximadamente 8W quando em estado de hibernação (ver Wake-on-LAN na Seção 1.4.4) e o servidor Transmeta empregado também consome 8W quando ativo (esse é o primeiro servidor a ser ligado). O DVFS tem a sua maior contribuição quando: (a) a carga do cluster está acima de 70%, pois todos os servidores estão ativados; e, (b) quando um novo servidor é ativado. A importância do DVFS diminui a medida que a carga aumenta, para um número fixo de servidores. 400 350 300 Potencia media (W) 250 200 150 100 Sem gerenciamento 50 DVFS On/Off 0 On/Off + DVFS 0 20 40 60 80 100 Carga (%) Figura 1.10. Comparação de políticas de DVFS e VOVO em clusters heterogeneos [Rusu et al. 2006] 25

D. Mossé, J.C.B. Leite, A.G.B. de Barros 1.6.4. Adicionando controle e independência de modelo Tradicionalmente, a qualidade de serviço em clusters de servidores web é medida pelo quociente entre o número de requisições atendidas no prazo e o número total de requisições, em uma determinada janela de tempo. No trabalho apresentado por [Bertini et al. 2007] foi observado que, em vez de quantificar o número de transações completadas com sucesso, como é praxe nesse tipo de trabalho, seria possível fazer o gerenciamento energético com base em um percentil da função de distribuição da folga (ou do atraso) do tempo de resposta em relação ao prazo estabelecido para a requisição. Estudar o atraso acumulado numa janela de tempo fornece mais informações sobre o estado do sistema (quanto mais atrasadas as tarefas, mais aceleração é necessária nos servidores). Com base no percentil de requisições que devem ser atendidas no prazo (e.g., 95%), um controlador PIDF (Proportional Integral Derivative with a lowpass Filter) altera as velocidades de operação das máquinas do cluster (ou seja, atua no mecanismo de DVFS). Esse controlador é executado no frontend, onde são guardadas as informações de configuração do cluster. Sendo o FE um ponto central, a medida dos tempos de resposta das requisições é facilitada. Adicionalmente, o FE executa o balanceamento de carga, com distribuição dependente da capacidade de cada servidor (ou seja, é assumido que o cluster pode ser heterogêneo). Nesse trabalho, os autores modelam essa variável, ou seja, a folga ou o atraso (que chamam de tardiness), através das distribuições Pareto e Lognormal, e os resultados reportados, em termos de gasto energético e QoS, indicam ganhos em relação a outras propostas. Esse método, denominado método TQM (Tardiness Quantile Metric), foi aplicado a um cluster de 2 camadas; a terceira camada não foi tratada nesse trabalho. Em trabalho posterior [Bertini et al. 2009], os mesmos autores generalizaram o método TQM para qualquer distribuição, através do uso de aproximação estocástica [Kushner e Yin 2003]. Esse método é chamado de GTQM - Generalized TQM, e se baseia no algoritmo de Robbins-Monro [Robbins e Monro 1951], que faz a avaliação do percentil de uma função de distribuição durante a execução do sistema, independentemente do conhecimento da forma da função. Os autores compararam a proposta desse último trabalho com a solução já otimizada de [Rusu et al. 2006] (ver também Seção 1.6.3). Para um teste de 1,8h de duração, e com uma carga sintética, eles demonstraram que um ganho adicional de até 5,2% poderia ser obtido, conforme indicado na Figura 1.11. Os mesmos autores apresentaram uma solução para a questão da configuração dinâmica, através de um método de otimização. O problema em questão consiste em definir, para uma dada carga, qual a melhor configuração a ser aplicada a um cluster de servidores heterogêneos. Ou seja, como otimizar o número de máquinas ativas (ligadas), bem como definir a frequência de operação de cada uma dessas máquinas [Bertini et al. 2010]. Eles trataram o problema através de Programação Inteira Mista (PIM), e testaram com sucesso 26

Clusters Verdes Figura 1.11. Eficiência do método GTQM [Bertini et al. 2009] a técnica proposta em um protótipo real. Nesse mesmo trabalho os autores discutem duas alternativas para a implementação do mecanismo de controle de QoS. Na primeira, SISO (Single Input Single Output), existe um único controlador PIDF cuja saída (normalizada) serve de entrada para tabelas geradas off-line (pela otimização via PIM), onde uma frequência de operação é obtida para cada máquina do cluster, além da indicação de quais máquinas estarão on-line. Na segunda, SIMO (Single Input Multiple Output), a referência de tardiness é enviada para N controladores independentes (um por servidor), e não há nenhum mecanismo de otimização global para DVFS, somente para decidir que máquinas estarão ligadas. O primeiro mecanismo, embora ótimo, tem como desvantagem a necessidade de gerar tabelas off-line, o que pode ser um problema para Data Centers de médio e grande porte (i.e., com mais que 30 servidores). O segundo mecanismo dispensa a procura por uma configuração global ótima de frequências, deixando o seu ajuste para os N controladores PIDF locais, um por servidor. No artigo os autores demonstram que a primeira alternativa oferece um desempenho energético ligeiramente melhor, conforme indicado na Figura 1.12, e que a vantagem da SISO aumenta para uma carga crescente de requisições. 1.6.5. Tratando arquiteturas de 3 camadas Embora em sua topologia mais geral clusters de servidores possam ser representados por um modelo de 3 camadas (3-tiers), ou seja, front-end (primeira camada, ou camada 1), camada de aplicação (segunda camada, ou camada 2) 27