Red Hat Enterprise Linux 6 Guia de Gerenciamento de Energia - PDF
Red Hat Enterprise Linux 6 Guia de Gerenciamento de Energia
Download "Red Hat Enterprise Linux 6 Guia de Gerenciamento de Energia"
Catarina Salvado Deluca
1 Red Hat Enterprise Linux 6 Guia de Gerenciamento de Energia (Beta) Gerenciando consumo de energia no Red Hat Enterprise Linux 6 Edição 0.2 Red Hat Inc. Don Domingo Rüdiger Landmann
2 Red Hat Enterprise Linux 6 Guia de Gerenciamento de Energia (Beta) Gerenciando consumo de energia no Red Hat Enterprise Linux 6 Edição 0.2 Don Domingo Red Hat Serviços de Conteúdo de Engenharia Rüdiger Landmann Red Hat Serviços de Conteúdo de Engenharia m Red Hat Inc.
3 Nota Legal Copyright 2010 Red Hat Inc.. T his document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux is the registered trademark of Linus Torvalds in the United States and other countries. Java is a registered trademark of Oracle and/or its affiliates. XFS is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL is a registered trademark of MySQL AB in the United States, the European Union and other countries. Node.js is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project. T he OpenStack Word Mark and OpenStack Logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community. All other trademarks are the property of their respective owners. Resumo Este documento explica como gerenciar o consumo de energia nos sistemas Red Hat Enterprise Linux 6 de forma efetiva. As seguintes seções apresentam técnicas diferenciadas para diminuir o consumo de energia (para ambos servidor e laptop), e como cada técnica afeta o desempenho geral de seu sistema. Por favor, observe: O documento ainda está sob desenvolvimento, está sujeito à grande mudança e é fornecido aqui como uma pré-visualização. O conteúdo e instruções contidas nele não devem ser consideradas completas, e devem ser usadas com cuidado.
4 Índice Índice. Prefácio Convenções de Documentos Convenções T ipográficas Convenções de Pull-Quote Notas e Avisos 5 2. Nós precisamos de seu comentário 6. Capítulo Visão Geral Importância do Gerenciamento de Energia Básicos do Gerenciamento de Energia 8. Capítulo Ferramentas de... Gerenciamento de... Energia e.. análise Visão geral de auditoria e análise PowerT OP Diskdevstat e netdevstat Kit de Ferramenta de Vida da Bateria Tuned e ktune O arquivo tuned.conf T uned-adm DeviceKit-power e devkit-power GNOME Power Manager Outras razões para auditoria 25. Capítulo Infraestrutura do... Núcleo e.. Mecânica Estados Ociosos de CPU Usando os Governadores CPUfreq T ipos de CPUfreq Governor Configuração do CPUfreq Ajustando Política e Velocidade do CPUfreq Suspender e Resumir Kernel sem T ick Active-State Power Management (Gerenciamento de Energia de Estado Ativo) Aggressive Link Power Management (Gerenciamento de Energia de Conexão Agressiva) Otimização de Acesso de Drive Relatime Planejamento de Energia Gerenciamento de Energia de Gráficos Aprimorado RFKill Otimizações em Espaço de Usuário 36. Capítulo Casos de.... Uso Exemplo - Servidor Exemplo Laptop 38. Dicas para..... Desenvolvedores A.1. Usando Opções 40 A.2. Wake-ups 41 A.3. Fsync 41. Histórico de... Revisão
5 2 Red Hat Enterprise Linux 6 Guia de Gerenciamento de Energia
6 Prefácio Prefácio 1. Convenções de Documentos Este manual usa diversas convenções para destacar certas palavras e frases e chamar a atenção para informações específicas. Em PDF e edições de texto, este manual usa tipos de letras retiradas do conjunto Liberation Fonts. O conjunto de Fontes Liberation Fonts, também é usado em formato HT ML, caso o conjunto esteja instalado em seu sistema. Caso ainda não esteja, como forma alternativa, estão disponíveis tipos de letras equivalentes. Nota: O Red Hat Enterprise Linux 5 e versões mais recentes do mesmo, incluem o conjunto Liberation Fonts por padrão Convenções Tipográficas São usadas quatro convenções tipográficas para realçar palavras e frases específicas. Estas convenções, e circunstâncias a que se aplicam, são as seguintes: Negrito Espaço Único (Mono-spaced Bold) Usada para realçar entradas do sistema, incluindo comandos de shell, nomes de arquivos e caminhos. São também usadas para realçar teclas Maiúsculas/Minúsculas e as combinações de teclas. Por exemplo: Para ver o conteúdo do arquivo m y_next_bestselling_novel em sua pasta de trabalho atual, insira o comando cat m y_next_bestselling_novel na janela de solicitação e pressione Enter para executar o comando. O comando acima inclui um nome de arquivo, um comando de shell e uma tecla, todos apresentados em Negrito Espaço Único (Mono-spaced Bold) e todos distintos, graças ao conteúdo. As combinações de tecla podem ser diferenciadas de uma tecla individual pelo sinal positivo que conecta cada parte da combinação da tecla. Por exemplo: Pressione Enter para executar o comando. Pressione Ctrl+Alt+F2 para trocar ao terminal virtual. A primeira sentença, destaca uma tecla específica a ser pressionada. A segunda destaca duas combinações de teclas: um conjunto de três teclas pressionadas simultaneamente. Caso o código fonte seja discutido, serão apresentados como acima, os nomes de classe, métodos, funções, nomes de variantes e valores retornados mencionados em um parágrafo, em Negrito de Espaço Único (Mono-spaced Bold). Por exemplo: Classes baseadas em arquivo, incluem filesystem para sistemas de arquivo, file para arquivos, e dir para diretórios. Cada classe possui seu conjunto próprio de permissões associadas. Negrito Proporcional Esta representa as palavras e frases encontradas no sistema, incluindo os nomes de aplicativos, texto de caixa de diálogo, botões rotulados, caixa de seleção e rótulos de botão de opção, títulos de menus e sub-menus. Por exemplo: 3
7 Red Hat Enterprise Linux 6 Guia de Gerenciamento de Energia Escolha Sistema Preferências Mouse da barra do menu principal para lançar Mouse Preferences. Na aba Botões selecione o Botão da esquerda do m ouse selecione a caixa e cliquem emfecharpara mudar o botão inicial do mouse da esquerda para a direita (tornando o mouse adequado para o uso na mão esquerda). Selecione Applications Accessories Character Map a partir da barra de menu principal, com o objetivo de inserir um caractere especial ao arquivo gedit. Em seguida, selecione Search Find a partir da barra do menu Character Map, digite o nome do caractere no campo Search e clique em Next. O caractere pesquisado aparecerá destacado no Character T able. Clique duas vezes no caractere destacado para posicioná-lo no campo T ext to copy e clique no botão Copy. Retorne ao seu documento e selecione Edit Paste a partir da barra do menu gedit. O texto acima inclui nomes de aplicativos, nomes de menu e itens de todo o sistema, nomes de menu específicos do aplicativo, e botões e textos encontrados na Interface Gráfica GUI, todos apresentados em Negrito Proporcional (Proportional Bold) e todos diferenciados de acordo com o contexto. Itálico em Negrito de Espaço Único (Mono-spaced Bold Italic) ou Itálico em Negrito Proporcional (Proportional Bold Italic) Sendo o Negrito Espaço Único (Mono-spaced Bold) ou Negrito Proporcional (Proportional Bold), os itálicos extras indicam textos substituíveis ou variáveis. O Itálico denota o texto que você não inseriu literalmente ou textos exibidos que mudam dependendo das circunstâncias. Por exemplo: Para conectar-se à uma máquina remota usando o ssh, digite ssh nome do domain.name na janela de comandos. Por exemplo, considere que a máquina remota seja example.com e seu nome de usuário nesta máquina seja john, digite ssh exam ple.com. O comando m ount -o rem ount file-system remonta o sistema de arquivo nomeado. Por exemplo, para remontar o sistema de arquivo /home, o comando é mount -o rem ount /hom e. Para ver a versão de um pacote instalado, use o comando rpm -q package. Ele retornará um resultado como este: package-version-release. Perceba as palavras em negrito e itálico acima - username, domain.name, file-system, package, version e release. Cada palavra é um espaço reservado, tanto para o texto que você insere quando emitindo um comando ou para textos exibidos pelo sistema. Além de uso padrão para apresentar o título de um trabalho, os itálicos denotam a primeira vez que um termo novo e importante é usado. Por exemplo: O Publican é um sistema de publicação do DocBook Convenções de Pull-Quote Resultado de terminal e listagem de código fonte são definidos visualmente com base no contexto. O resultado enviado à um terminal é configurado em Romano de Espaço Único (Mono-spaced Rom an) e apresentado assim: books Desktop documentation drafts mss photos stuff svn books_tests Desktop1 downloads images notes scripts svgs 4
8 Prefácio As listas de código fonte também são configuradas em Romano de Espaço Único (Mono-spaced Rom an), porém são apresentadas e realçadas como a seguir: static int kvm_vm_ioctl_deassign_device(struct kvm * kvm, struct kvm_assigned_pci_dev * assigned_dev) { int r = 0; struct kvm_assigned_dev_kernel * match; mutex_lock(&kvm->lock); match = kvm_find_assigned_dev(&kvm->arch.assigned_dev_head, assigned_dev->assigned_dev_id); if (!match) { printk(kern_info "%s: device hasn't been assigned before, " "so cannot be deassigned\n", func ); r = -EINVAL; goto out; } kvm_deassign_device(kvm, match); kvm_free_assigned_device(kvm, match); out: } mutex_unlock(&kvm->lock); return r; 1.3. Notas e Avisos E por fim, usamos três estilos visuais para chamar a atenção para informações que possam passar despercebidas. Nota Uma nota é uma dica ou símbolo, ou ainda uma opção alternativa para a tarefa em questão. Se você ignorar uma nota, provavelmente não resultará em más consequências, porém poderá deixar passar uma dica importante que tornará sua vida mais fácil. Importante Caixas importantes detalham coisas que são geralmente fáceis de passarem despercebidas: mudanças de configuração que somente se aplicam à sessão atual, ou serviços que precisam ser reiniciados antes que uma atualização seja efetuada. Se você ignorar estas caixas importantes, não perderá dados, porém isto poderá causar irritação e frustração. Atenção Um Aviso não deve ser ignorado. Se você ignorar avisos, muito provavelmente perderá dados. 5
9 Red Hat Enterprise Linux 6 Guia de Gerenciamento de Energia 2. Nós precisamos de seu comentário Se você encontrar erro ortográfico neste manual, ou se você tem uma sugestão para melhoramento deste manual, nós gostaríamos muito de ouvir sua opinião! Por favor submita um relatório em Bugzilla: contra o produto Red_Hat_Enterprise_Linux.. Uma vez submetendo um relatório de bug, por favor mencione a identificação do manual:doc- Power_Management_Guide. Se você tiver uma sugestão para o melhoramento deste documento, por favor tente ser o mais específico possível em sua descrição. Caso você tenha encontrado um erro, por favor inclua o número da seção e alguns detalhes a respeito do texto para a nossa melhor identificação. 6
10 Capítulo 1. Visão Geral Capítulo 1. Visão Geral O gerenciamento de energia tem sido um de nossos pontos de foco para aprimoramento para o Red Hat Enterprise Linux 6. De uma perspectiva mais ampla, o gerenciamento de energia é somente um dos problemas para o green IT (T I verde) que estende adiante e inclui problemas como materiais recicláveis, produção de sistemas ecológicos, e design adequado e planejamento de sistemas ecológicos. Neste documento, fornecemos diretrizes e informações sobre o gerenciamento de energia de seus sistemas com um Red Hat Enterprise Linux Importância do Gerenciamento de Energia No centro do gerenciamento de energia você entende como otimizar de forma efetiva o consumo de energia de cada componente de sistema. Isto leva a estudos de tarefas diferentes que seu sistema realiza e configurar cada componente para assegurar que seu desempenho é correto para o trabalho. O maior motivador para o gerenciamento de energia é: reduzindo consumo de energia em geral para economizar energia O uso correto do gerenciamento de energia em: redução de aquecimento para servidores e centrais de computadores custos secundários reduzidos, incluindo refrigeramento, espaço, cabos, geradores, e uninterruptible power supplies (UPS). tempo de vida de bateria estendido para laptops. resultado de dióxido de carbono mais baixo atendendo às regulamentações do governo ou requerimentos legais a respeito do Green IT, por exemplo Energy Star atendendo às regras da empresa para novos sistemas Como via de regra, a diminuição do consumo de energia de um componente específico (ou de um sistema como um todo) irá diminuir o aquecimento e naturalidade. Como tal, você deve estudar a fundo e testar a diminuição do desempenho aceita por qualquer configuração que você fizer, especialmente para sistemas de missão crítica. Ao estudar as tarefas diferentes que seu sistema realiza, e ao configurar cada componente para certificar-se que seu desempenho é o suficiente para o trabalho, você pode economizar energia, gerar menos aquecimento e otimizar a vida da bateria para laptops. Muitos dos princípios para a análise e ajuste de um sistema em relação ao consumo de energia são semelhantes àqueles do ajuste de desempenho. Até um certo ponto, o gerenciamento de energia e ajuste de desempenho são soluções opostas para a configuração do sistema, pois os sistemas são geralmente otimizados quanto ao desempenho ou quanto à energia. Este manual descreve as ferramentas que a Red Hat fornece e as técnicas que desenvolveram para ajudá-lo neste processo. O Red Hat Enterprise Linux 6 já vem com uma quantia de recursos de gerenciamento de energia que são ativados por padrão. Eles foram todos escolhidos seletivamente para não impactar o desempenho de um servidor comum ou uso de desktop. No entanto, para uso muito específico onde máxima entrada, meor latência ou desempenho de CPU mais alto é crucial, pode ser necessário realizar uma revisão destes padrões. Para decidir se você deve otimizar suas máquinas usando técnicas descritas neste documento, pergunte-se: P: Eu preciso otimizar? 7
11 Red Hat Enterprise Linux 6 Guia de Gerenciamento de Energia R: A importância da otimização de energia depende se sua empresa possui diretrizes que precisam ser seguidas ou se existem algumas regras que você precisa seguir. P: R: Quanto eu preciso otimizar? Muitas das técnicas que apresentamos não requerem que você passe por todo o processo de auditoria e análise de sua máquina em detalhes, mas ao invéz disso oferece um conjunto de otimizações gerais que geralmente melhoram o uso de energia. P: R: A otimização irá reduzir o desempenho do sistema até um ponto aceitável? A maioria das técnicas descrita neste documento influencia o desempenho de seu sistema de maneira notável. Se você escolher implementar o gerenciamento de energia além de padrões já existentes no Red Hat Enterprise Linux 6, você deve monitorar o desempenho do sistema após a otimização de energia e decidir se a perda de desempenho é aceitável. P: R: O tempo e recursos gastos na otimização do sistema compensam o ganho alcançado? A otimização de um sistema único manualmente seguido de um processo inteiro geralmente não compensa, considerando que o tempo de custo gastos ao fazê-lo é maior do que o benefício que geralmente obteria durante toda uma vida de uma máquina única. Por um outro lado, se você por exemplo colocar sistemas de desktops em seu escritório, todos usando a mesma configuração, então ao criar uma configuração otimizada e aplicá-la à todas as máquinas pode ser uma boa idéia. As seções a seguir irão explicar como os benefícios de desempenho de hardware óptimo beneficia seu sistema em relação ao consumo de energia Básicos do Gerenciamento de Energia O gerenciamento de energia efetivo é construído sob os seguintes princípios: Uma CPU ociosa deve somente ser ativada quando necessário O kernel Red Hat Enterprise Linux 5 usado em um timer periódico para cada CPU. Este timer evita que a CPU se torne realmente ociosa, pois ele requer que a CPU processe cada evento de timer (o qual aconteceria a cada milisegundos, dependendo da configuração), não importando se o processo estava rodando ou não. Uma grande parte do gerenciamento de energia efetivo envolve a redução da frequência na qual as ativações de CPU são realizadas. Por causa disso, o kernel do Linux no Red Hat Enterprise Linux 6 elimina o timer de periódico: como um resultado, o estado ocioso de uma CPU agora é tickless. Isto evita que a CPU consuma energia desnecessária quado estiver ociosa. No entanto, os benefícios deste recurso podem estar em offset se seu sistema possuir aplicativos que criam eventos de timer desnecessários. Os eventos de poll (como os de verificações para as mudanças de volume, movimento de mouse, entre outros) são exemplos de tais eventos. Red Hat Enterprise Linux 6 inclui ferramentas com o qual você pode identificar aplicativos de auditoria com base no uso de suas CPUs. Consulte o Capítulo 2, Ferramentas de Gerenciamento de Energia e análise para maiores detalhes. 8
12 Capítulo 1. Visão Geral Hardware e dispositivos que não estiverem sendo usados devem ser desativados completamente. Este é especialmente verdadeiro para dispositivos que possuem partes que movem ( por exemplo, discos rígidos). Além disso, alguns aplicativos podem deixar um dispositivo sem uso mas ativado "aberto" quando isto acontecer, o kernel assume que o dispositivo está em uso, o qual pode evitar que o dispositivo vá para estado de economia de energia. Atividade baixa deve traduzir para baixa voltagem Na maioria dos casos, no entanto, isto depende do hardware moderno e configuração do BIOS correta. Componentes de sistema mais antigos, geralmente não possuem suporte para alguns dos novos recursos que podemos agora suportar no Red Hat Enterprise Linux 6.Certifique-se de que está usando o firmware oficial mais recente para seus sistemas e que nas seções de gerenciamento de energia ou configuração de dispositivo do BIOS, os recursos de gerenciamento de energia estejam habilitados. Alguns recursos a checar incluem: SpeedStep PowerNow! Cool'n'Quiet ACPI (C state) Smart Se seu hardware possui suporte para estes recursos e eles estão habilitados no BIOS, o Red Hat Enterprise Linux 6 irá usá-los por padrão. Formatos diferentes de estados de CPU e seus efeitos. CPUs modernas juntas com Advanced Configuration and Power Interface (ACPI) fornecem estados de energia diferentes. Os três estados diferentes são: Espera (C-states) Frequência (P-states) Resultado de aquecimento (T-states or "thermal states") Uma CPU rodando no estado de espera mais baixo consome o mínimo de quantidade de watts, mas ele também leva muito mais tempo para ativar do estado quando necessário. Em casos raros, isto também pode levar à CPU ter que ser ativada imediatamente, todas as vezes que acaba de entrar no estado de espera. Esta situação resulta em uma CPU efetivamente permanentemente ocupada e perde um pouco da economia de energia em potencial se outro estado houver sido usado. Uma máquina desligada usa o mínimo de quantidade de energia. O mais óbvio que isto possa parecer, uma das melhores maneiras de economizar energia é desligando os sistemas. Por exemplo, sua empresa pode desenvolver uma cultura corporativa focada em consciência "green IT" (T I verde) com regras de desligar máquinas durante o intervalo do almoço ou quando você for pra casa. Você também poderá consolidar diversos servidores físicos em um servidor maior e virtualizá-los usando a tecnologia de virtualização que enviamos junto com o Red Hat Enterprise Linux 6. 9
13 Red Hat Enterprise Linux 6 Guia de Gerenciamento de Energia Capítulo 2. Ferramentas de Gerenciamento de Energia e análise 2.1. Visão geral de auditoria e análise A auditoria do manual detalhado, e ajuste de um sistema único é geralmente uma exceção, pois o tempo e custo gasto para realizar isto, sobrepõe os benefícios ganhos destas últimas peças de ajuste de sistema. No entanto, ao realizar estas tarefas uma vez para um grande número de sistemas quase idênticos onde você pode reusar as mesmas configurações para todos os sistemas, pode ser muito útil. Por exemplo, considere a implementação de diversos sistemas de desktop, ou um cluster de HPC onde as máquinas são quase idênticas. Outra razão para fazer a auditoria e análise é fornecer uma base para comparação contra o qual você consegue identificar regressões ou mudanças no comportamento do sistema no futuro. Os resultados desta análise podem ser muito úteis em casos onde o hardware, BIOS, ou atualizações de software acontecem regularmente e você queira evitar qualquer surpresas a respeito de consumo de energia. Geralmente, uma auditoria completa e análise lhe dará uma idéia muito melhor do que está realmente acontecendo em um sistema específico. A auditoria e análise de um sistema a respeito do consumo de energia é relativamente difícil, até mesmo com os sistemas mais modernos disponíveis. A maioria dos sistemas não fornecem os meios necessários para medir o uso de energia via software. Porém, existem exceções: O console de gerenciamento do ILO dos sistemas de servidor Hewlett Packard possuem um módulo de gerenciamento de energia que você pode acessar através da Web. A IBM fornece uma solução semelhante em seu módulo de gerenciamento de energia BladeCenter. Em alguns sistemas Dell, o assistente de IT oferece monitoramento de energia também. Outros fornecedores podem oferecer capacidades semelhantes para suas plataformas de servidores, mas não existe soluções únicas disponíveis que sejam suportadas por todos os fornecedores. Se seu sistema não possuir nenhum mecanismo embutido para medir o consumo de energia, existem outras opções. Você pode instalar um fornecimento de energia especial em seu sistema que ofereça informações de consumo de energia por USB. O Gigabyte Odin GT 550 W PC power supply é um exemplo deste, e o software para ler estes valores sob o Linux pode ser encontrado externamente em As a last resort, some external watt meters like the Watts up? PRO possui uma conexão de USB. Medidas diretas de consumo de energia é geralmente necessário somente para aumentar a economia o máximo possível. Felizmente, existem outros meios disponíveis para medir se as mudanças foram efetivadas ou como o sistema está se comportando. Este capítulo descreve as ferramentas necessárias PowerTOP A introdução do kernel do tickeless no Red Hat Enterprise Linux 6 (consulte Seção 3.4, Kernel sem T ick ) permite que a CPU insira o estado ocioso mais frequêntemente, reduzindo o consumo de energia e aumentando o gerenciamento de energia. A nova ferramenta PowerT OP identifica componentes específicos do kernel e aplicativos do userspace que frequentemente ativam a CPU. O PowerT OP foi usado no desenvolvimento para desenvolver as auditorias descritas em Seção 3.11, Otimizações em Espaço de Usuário que ajustam muitos aplicativos neste lançamento, reduzindo ativamento de CPU desnecessário pelo fator de dez. Instale PowerT OP com o comando: yum install powertop Execute PowerT OP com o comando: 10
14 Capítulo 2. Ferramentas de Gerenciamento de Energia e análise powertop Observe que você precisará executar o PowerT OP com privilégios do usuário root para permitir que o aplicativo faça qualquer coisa. Quando ele é executado, o PowerT OP reune estatísticas do sistema e apresenta-lh com uma lista de componentes que estão enviando ativamentos para a CPU mais frequentemente. O PowerT OP também dá sugestões de ajuste de sistema para consumo de energia mais baixo. Estas sugestões aparecem no final da tela, e especificam uma chave que você deve pressionar para aceitar as sugestões do PowerT OP. As atualizações do PowerT OP são efetuadas periodicamente, e outras sugestões aparecem em Figura 2.1, PowerTOP em Operação, observe as sugestões para aumentar o tem po de gravação de retorno suja do VM, and the key (W) para pressionar para aceitar as sugestões. Quando ele é executado, o PowerT OP reune estatísticas de sistemas e lhe apresenta diversas listas importantes de informações. No topo existe uma lista do tamanho que os seus núcleos de CPU têm sido em cada estado C e P disponíveis. Quanto mais tempo a CPU ficar em uma estatística C ou P, melhor (C4 sendo mais alta do que C3) e é um bom indicador de como o sistema está bem ajustado de acordo com o uso da CPU. Seu objetivo deve ser a residência de 90% ou mais em estado C ou P mais alto enquanto o sistema estiver em ocioso. A segunda parte da imformação é um sumário dos ativamentos atuais por segundo da máquina. O número de ativamento por segundo lhe fornece uma boa idéia de como os serviços estão ou os dispositivos e driver do kernel estão se desempenhando a respeito do uso de energia em seu sistema. Quanto mais ativamento por segundo você tiver, mais energia é consumida, portanto o mais baixo é melhor aqui. Depois, o PowerTOP fornece uma estimativa do uso de energia atual do sistema, caso esteja disponível. Aguarde o PowerT OP relatar estes números em laptops enquanto eles estão em modo de bateria. Qualquer estimativa disponível de uso de energia é seguido de uma lista detalhada de componentes que enviam ativamentos para a CPU mais frequentemente. No topo da lista se encontram os componentes que você deve investigar mais de perto, para otimizar seu sistema para reduzir o uso de energia. Se eles forem os componentes do kernel, (indicado pelo nome do componente sendo listado em <>) então os ativamentos serão associados geralmente ao driver específico que causa isto. O ajuste de drivers geralmente requer mudanças de kernel, que vão além do escopo deste documento. No entanto, os processos da área de usuário que enviam ativamentos, são gerenciados com maior facilidade. Primeiro, identifique se este serviço ou aplicativo deve ser executado neste sistema. Caso não deva, simplesmente desative-o. Para desligar um serviço permanentemente, execute: chkconfig servicename off Se você precisar de mais detalhes sobre o que o componente realmente faz, execute: ps -awux grep componentname strace -p processid Se o rastro parece que se repetirá, então provavelmente você encontrou um loop ocupado. Para reparar isto, você precisaria de uma mudança de código neste componente, o qual vai além do escopo deste documento. Quando ele é executado, o PowerTOP reune estatísticas do sistema e apresenta uma lista de componentes que estão enviando ativamentos para a CPU mais frequentemente. O PowerT OP 11
15 Red Hat Enterprise Linux 6 Guia de Gerenciamento de Energia também dá sugestões de ajuste de sistema para consumo de energia mais baixo. Estas sugestões aparecem no final da tela, e especificam uma chave que você deve pressionar para aceitar as sugestões do PowerT OP. As atualizações do PowerT OP são efetuadas periodicamente, e outras sugestões aparecem em Figura 2.1, PowerTOP em Operação, observe as sugestões para aumentar o tem po de gravação de retorno suja do VM, and the key (W) para pressionar para aceitar as sugestões. Estas mudanças serão ativadas somente na próxima reinicialização. Para ajudá-lo a efetivar de forma permanente estas mudanças, o PowerT OP exibe o comando exato que ele executa para realziar esta otimização. Adicione o comando ao seu arquivo /etc/rc.local com seu editor de texto preferido para que tome efeito todas as vezes que seu computador iniciar. Figura 2.1. PowerT OP em Operação O website Less Watts publica uma lista de aplicativos que o PowerT OP identificou como mantendo as CPUs ativas. Consulte Diskdevstat e netdevstat As ferramentas Diskdevstat e netdevstat são SystemT ap que coletam informações detalhadas sobre a atividade do disco e atividade de rede de todos os aplicativos rodando em um sistema. Estas ferramentas foram inspiradas por PowerT OP, o que exibe o número de ativamentos de CPU por cada aplicativo por segundo (consulte o Seção 2.2, PowerT OP ). As estatísticas que estas ferramentas coletam, permitem que você identifique aplicativos que desperdiçam a energia com muitas operações de E/S pequenas, ao invés de menos operações maiores. Outras ferramentas de monitoramento que medem somente velocidades de transferência, não ajudam a identificar este tipo de uso. Instalar estas ferramentas com o SystemT ap com o comando: yum install systemtap tuned-utils kernel-debuginfo 12
16 Capítulo 2. Ferramentas de Gerenciamento de Energia e análise Rodar estas ferramentas com o comando: diskdevstat ou o comando: netdevstat Ambos comandos podem tomar três parâmetros, como se segue: diskdevstat update_interval total_duration display_histogram netdevstat update_interval total_duration display_histogram update_interval O tempo em segundos entre atualizações da exibição. Padrão 5 total_duration O tempo em segundos para a execução total. Padrão: (1 dia) display_histogram Sinalização se o histograma para todos os dados colecionados no final da execução. O resultado se assemelha ao de PowerT OP. Aqui segue um resultado de amostra de uma execução de diskdevstat mais longa em um sistema Fedora 10 executando um KDE 4.2: 13
17 Red Hat Enterprise Linux 6 Guia de Gerenciamento de Energia PID UID DEV WRITE_CNT WRITE_MIN WRITE_MAX WRITE_AVG READ_CNT READ_MIN READ_MAX READ_AVG COMMAND sda plasma sda logwatch sda perl sda perl sda perl sda auditd sda crond sda crond sda crond sda crond sda crond sda crond sda crond sda crond sda crond sda crond sda crond sda laptop_mode sda rsyslogd sda cat sda perl sda perl sda perl sda perl sda sh sda perl sda perl sda perl sda perl 14
18 Capítulo 2. Ferramentas de Gerenciamento de Energia e análise sda perl sda perl sda perl sda perl sda perl sda lm_lid.sh As colunas são: PID O ID do processo do aplicativo UID o ID de usuário sob o qual o aplicativo está em execução DEV o dispositivo no qual a E/S aconteceu WRIT E_CNT o número total de operações de gravação WRIT E_MIN o tempo mínimo tomado para 2 gravações consecutivas (em segundos) WRIT E_MAX o tempo mais longo gasto para duas gravações consecutivas (em segundos) WRIT E_AVG a média de tempo gasta para duas gravações consecutivas (em segundos) READ_CNT o número total de operações de leitura READ_MIN o tempo mais curto gasto para duas leituras consecutivas (em segundos) READ_MAX o tempo mais long gasto para duas leituras consecutivas (em segundos) READ_AVG a média de tempo gasta para duas leituras consecutivas (em segundos) 15
19 Red Hat Enterprise Linux 6 Guia de Gerenciamento de Energia COMMAND o nome do processo neste exemplo, três aplicativos bastante óbvios se sobresaem: PID UID DEV WRITE_CNT WRITE_MIN WRITE_MAX WRITE_AVG READ_CNT READ_MIN READ_MAX READ_AVG COMMAND sda plasma sda auditd sda rsyslogd Estes três aplicativos possuem um WRIT E_CNT maior do que 0, o que significa que eles realizam alguma forma de gravação durante a medida. Destes, o plasma era o ofendedor pior pela principal razão: ele realizava a maior parte das operações de gravação, e é claro, a média de tempo entre gravações era a mais baixa. O Plasma seria então o melhor candidado a investigar se você estivesse preocupado com os aplicativos de energia ineficiente. Use os comandos strace e ltrace para examinar aplicativos mais de perto, rastreando todas as chamadas de sistema de ID de processo existentes. Neste exemplo, você pode executar: strace -p 2789 Neste exemplo, o resultado de strace continha um modelo repetitivo a cada 45 segundos que abria o arquivo cache do ícone KDE do usuário para gravação seguido de um fechamento imediato do arquivo novamente. Isto levava à uma gravação física necessária para o disco rígico, pois o metadado do arquivo (principalmente, o tempo de modificação) tinha sido mudado. O reparo final era para evitar aquelas chamadas desnecessárias quando não ocorria nenhuma atualização nos ícones Kit de Ferramenta de Vida da Bateria O Red Hat Enterprise Linux 6 apresenta o Battery Life Tool Kit (BLTK), um conjunto de tests que simula e analiza a o tempo de vida da bateria e desempenho. O BLTK consegue isto realizando conjuntos de tarefas que estimulam grupos de usuários específicos, tal como um desenvolvedor ou funcionário de escritório e relatando resultados. Embora tenha sido desenvolvido especialmente para testar o desempenho do notebook, o BLT K também pode relatar o desempenho de computadores desktop quando iniciar com a opção -a. O BLTK permite que você gere cargas de trabalho muito reproduzíveis, que são comparáveis ao uso real de uma máquina. Por exemplo, a carga de trabalho office escreve um texto, corrige, e faz a mesma coisa para uma planilha. Ao rodar um BLT K combinado com um PowerT OP ou qualquer uma das outras ferramentas de análises que você testa se as otimizações que você realizou possuem um efeito quando uma máquina está em uso ao invés de somente em modo ocioso. Como você pode rodar exatamente a mesma carga de trabalho diversas vezes para configurações diferentes, você pode comparar resultados para configurações diferentes. Instalar BLT K com o comando: yum install bltk 16
20 Capítulo 2. Ferramentas de Gerenciamento de Energia e análise Executar BLT K com o comando: bltk workload options Por exemplo, para executar a carga de trabalho de idle por 120 segundos: bltk -I -T 120 A carga de trabalho disponível por padrão é: -I, --idle sistema está ocioso, para usar como uma base para comparação com outras cargas de trabalho. -R, --reader simula documentos de leitura (por padrão com o Firefox) -P, --player simula visualizar arquivos de multimídia a partir de um CD ou DVD (por padrão com o mplayer) -O, --office simula a edição de documentos com o conjunto OpenOffice.org Outras opções permitem que você especifique: -a, --ac-ignore ignore se a energia AC estiver disponível (necessário para o uso de desktop) -T number_of_seconds, --tim e number_of_seconds o tempo (em segundos) sob o qual o teste é rodado; use esta opção com a carga de trabalho idle -F filename, --file filename especifica um arquivo a ser usado por uma carga de trabalho específica, por exemplo, um arquivo para a carga de trabalho player para tocar ao invés de acessar o drive de CD ou DVD. -W application, --prog application especifica um aplicativo a ser usado por uma carga de trabalho específica, por exemplo, um browser ao invés de um Firefox para a carga de trabalho do reader BLT K suporta várias opções mais especializadas. Para detalhes, consulte as páginas man bltk BLTK grava os resultados que ele gera em um diretório especificado no arquivo de configuração /etc/bltk.conf por padrão, ~/.bltk/workload.results.number/. Por exemplo, o diretório 17
21 Red Hat Enterprise Linux 6 Guia de Gerenciamento de Energia ~/.bltk/reader.results.002/ mantém os resultados do terceiro teste com a carga de trabalho reader (o primeiro teste não é numerado). Os resultados estão espalhados por diversos arquivos texto. Para condensionar estes resultados em um formato que seja fácil de ler, rode: bltk_report path_to_results_directory Os resultados agora aparecem em um arquivo texto chamado Report no diretório de resultados. Para visualizar os resultados em um emulador de terminal, use a opção -o: bltk_report -o path_to_results_directory 2.5. Tuned e ktune O Tuned é um daemon que monitora o uso de componentes de sistema e ajusta dinamicamente as configurações de sistema baseadas na informação de monitoramento. O ajuste dinâmico significa a forma que diversos componentes de sistema são usados de forma diferentes durante o tempo ativo para qualquer sistema. Por exemplo, o hard drive é usado de forma pesada durante a inicialização e login, mas é raramente usado mais tarde quando um usuário provavelmente estiver trabalhando com aplicativos como o OpenOffice ou clientes de . Como forma semelhante, os dispositivos da CPU e rede são usados de forma diferentes em momentos diferentes. O T uned monitora a atividade deste componentes e reage à mudanças em suas formas de uso. Como exemplo prático, considere uma estação de trabalho de um escritório comum. Na maior parte do tempo, a interface de rede Ethernet estará inativa. Somente alguns s serão recebidos ou enviados ou algumas páginas da Web podem ser carregadas. Para estes tipos de cargas, a interface de rede não precisa rodar em velocidade total o tempo todo, como é por padrão. O Tuned possui um plugin de monitoramento e ajuste para dispositivos de rede que podem detectar baixa atividade e depois diminuir automaticamente a velocidade da interface, geralmente resultando em menos uso de energia. Se a atividade na interface aumentar drasticamente por um longo período de tempo, por exemplo porque uma imagem de DVD está sendo baixada ou um recebido com anexos grandes, o tuned irá detectar isto e ajustar a velocidade de interface para o máximo, para oferecer melhor desempenho enquanto o nível de atividade está tão alto. Este princípio é usado para os outros plugins para a CPU e discos rígidos também. Dispositivos de rede não são configurados para se comportarem desta maneira por padrão, pois a mudança de velocidade pode levar um tempo para ser efetivado e portanto impacta a experiência do usuário diretamente e visivelmente. Considerações semelhantes se aplicam à CPU e plugins de ajuste de hard drive. Quando um hard drive for girado para baixo, pode levar alguns segundos para que volte para cima o que resulta na falta observada de resposta do sistema durante o período. As consequências da latência para o plugin da CPU é a menor possível, mas ainda é ao menos mensurável, embora quase não notável por um usuário. Junto com o tuned agora também oferecemos o ktune. Ktune foi introduzido no Red Hat Enterprise Linux 5.3 como uma framework e serviço para otimizar o desempenho de uma máquina para casos de uso específicos. Desde então, o ktune tem sido aprimorado até o ponto que nós agora o usamos como parte estática de nossa framework de ajuste geral. É usado principalmente em perfis diferentes prédefinidos descritos em Seção 2.5.2, T uned-adm. Instalar o pacote tuned e seus scripts associados systemtap com o comando: yum install tuned Instalando o pacote tuned você também instala um arquivo de configuração de amostra em 18
22 Capítulo 2. Ferramentas de Gerenciamento de Energia e análise /etc/tuned.conf e ativa o perfil de padrão. Iniciar tuned executando o: service tuned start Para iniciar tuned todas as vezes que a máquina inicializa, execute: chkconfig tuned on O próprio T uned possui opções adicionais que você pode usar quando rodar automaticamente. As opções disponíveis são: -d, --daemon iniciar tuned como um daemon ao invés de permanente. -c, --conffile use o arquivo de configuração com o nome e caminho especificado, por exemplo, -- conffile=/etc/tuned2.conf. O padrão é /etc/tuned.conf. -D, --debug use o nível mais alto de loggin O arquivo tuned.conf O arquivo tuned.conf contém configurações do tuned. Por padrão, está localizado em /etc/tuned.conf, mas você pode especificar um nome diferente e local iniciando o tuned com a opção --conffile. O arquivo config deve sermpre conter uma seção [m ain] que define os parâmetros gerais para tuned. O arquivo então contém uma seção para cada plugin. A seção [m ain] contém as seguintes opções: interval o intervalo no qual o tuned deve monitorar e ajustar o sistema, em segundos. O valor padrão é 10. verbose especifica se o resultado deve ser verbosidade. O valor padrão é False. logging especifica a prioridade mínima a ser autenticada. Em order decrescente, valores aceitáveis são: critical, error, warning, info, e debug. O valor padrão é info. logging_disable especifica prioridade máxima de mensagens a serem autenticadas; qualquer mensagem com esta prioridade ou menor, não será autenticada. Em ordem decrescente, os valores aceitáveis 19
23 Red Hat Enterprise Linux 6 Guia de Gerenciamento de Energia são: critical, error, warning, info, e debug. O valor notset desabilita esta opção. Cada plugin possui sua própria seção, especificada com o nome do plugin nos colchetes; por exemplo: [CPUT uning]. Cada plugin possui suas próprias opções, mas o seguinte se aplica à todos os plugins: enabled especifica se o plugin está ativao ou não. O valor padrão é True. verbose especifica se o resultado deve ser verbosidade. Se não for ajustado para este plugin, o valor é herdado de [m ain]. logging especifica a prioridade mínima de mensagens a serem autenticadas. Se não for ajustado para este plugin, o valor é herdado de [main]. Um arquivo de configuração de amostra segue: 20