Eu estava fazendo alguns testes simples de mão no nosso servidor de banco de dados (ao vivo) fora do horário de pico, e notei que as consultas retornavam resultados de referência um tanto erráticos .
Eu havia habilitado o plano de economia de energia "Balanceado" em todos os nossos servidores há algum tempo, porque achei que eles não estavam nem perto da alta utilização e, dessa forma, poderíamos economizar energia.
Eu supus que isso não teria um impacto significativo e mensurável no desempenho. No entanto, se os recursos de economia de energia da CPU estão afetando o desempenho típico - particularmente no servidor de banco de dados compartilhado -, não tenho certeza se vale a pena!
Fiquei um pouco surpreso com o fato de nossa camada da web, mesmo com carga de 35 a 40%, reduzir a velocidade de 2,8 Ghz a 1,25V a 2,0 Ghz a 1,15V.
Espero totalmente que o relógio reduza a economia de energia, mas esse nível de carga parece alto o suficiente para mim e deve estar aumentando a velocidade máxima do relógio.
Nosso servidor de banco de dados com 8 cpu possui muito tráfego, mas uma utilização extremamente baixa da CPU (devido à natureza de nossas consultas SQL - muitas delas, mas consultas realmente simples). Geralmente fica em 10% ou menos. Então eu espero que ele tenha feito downclock ainda mais do que a captura de tela acima. De qualquer forma, quando mudei o gerenciamento de energia para o "alto desempenho", vi meu benchmark de consulta SQL simples melhorar em cerca de 20% e me tornar muito consistente de uma execução para outra .
Acho que estava pensando que o gerenciamento de energia em servidores pouco carregados era vantajoso para as duas partes - sem perda de desempenho e economia significativa de energia porque a CPU geralmente é o consumidor número 1 ou 2 na maioria dos servidores. Esse não parece ser o caso; você perderá algum desempenho com o gerenciamento de energia da CPU ativado, a menos que o servidor esteja sempre com tanta carga que o gerenciamento de energia tenha se desligado efetivamente. Esse resultado me surpreendeu.
Alguém tem alguma outra experiência ou recomendação para compartilhar no gerenciamento de energia da CPU para servidores? É algo que você liga ou desliga nos servidores? Você mediu muita energia que está economizando? Você comparou com ele dentro e fora?
fonte
Respostas:
Não tenho certeza sobre servidores, mas o pensamento atual em dispositivos embarcados não é incomodar-se com as etapas entre baixo consumo de energia e flat-out, porque o tempo extra envolvido consumirá sua economia de energia; portanto, basicamente eles consomem pouca energia até obter qualquer quantidade real de carga da CPU, no ponto em que eles mudam para o mais rápido possível, para que possam terminar o trabalho e voltar à marcha lenta com baixa potência.
fonte
Sempre desativei qualquer tipo de gerenciamento de energia nos servidores. Estou curioso para saber o que os outros experimentaram, mas sempre presumi que, se o servidor estiver com pouca freqüência, sempre haverá algum atraso para 'acelerar' a CPU para 100%, e em um data center configurando qualquer atraso como esse é inaceitável.
Os dados que você forneceu parecem apoiar essa suposição. Portanto, não realizei nenhum teste específico, mas parece que você não deve usar nenhuma tecnologia de economia de energia no Windows ou no BIOS. Eu até desativo as configurações de 'desligar a rede' e da placa PCI para ser extremamente conservadora.
fonte
Quanta energia isso realmente lhe poupará :
Se você decidir que esse recurso pode colocar em risco a estabilidade de seus servidores (eu tenho experiência nisso), você poderá procurar em outros lugares a economia de energia.
Eu tentaria descobrir quanta energia isso pode economizar para a quantidade de servidores que você possui (embora talvez você já tenha feito isso). Como o gráfico que você postou em sua resposta é percentual, para sua empresa, a economia pode realmente ser muito pouca energia real. Se você não possui muitos servidores, pode não ser tanto assim, e obter luzes ativadas por movimento ou algo parecido em seu escritório pode economizar mais energia (mesmo que isso não seja tão comercializável).
Lembro-me de ler alguns anos atrás sobre uma das principais empresas automobilísticas americanas (esqueça qual) tendo pressão para alterar as emissões do escapamento de seus carros. Em vez disso, a empresa mostrou que, se encerrasse algumas de suas fábricas, seria muito mais barato para elas, além de resultar em muito mais economia de emissões.
Não esqueça os discos:
Além disso, convém verificar se esses recursos de economia de energia não rodam o (s) disco (s) se eles não forem usados. Talvez por algum tempo todos os resultados da consulta SQL estejam na RAM, o disco será usado e entrará no modo de suspensão (não tem certeza se funciona assim)? Se isso puder acontecer, haverá uma grande penalidade de desempenho enquanto tudo gira novamente.
fonte
Prefácio: Estou dando alguns saltos / generalizações sobre o Intel Xeons e seu desempenho de economia de energia com o SpeedStep. Ao ler sobre as CPUs Intel Xeon " Yorkfield " de 45nm, a Tecnologia Enhanced Intel SpeedStep (EIST) e o Enhanced Halt State (C1E) parecem ser o verdadeiro culpado da situação. Concordo com sua afirmação em acreditar que ativar esses recursos de gerenciamento de energia ajudaria a conservação de energia, mas quando as CPUs precisavam da energia sob carga, o sistema retornava às configurações normais de velocidade do relógio de tensão. Parece que o EIST e o C1E têm alguns efeitos colaterais que não são implicitamente intuitivos ao usar a opção / ou no BIOS. Depois de rastrear vários sites de overclock, parece que essas duas configurações no BIOS causam um pouco de frustração.
Em http://www.overclock.net/intel-cpus/376099-speedstep-guide-why-does-my-processor.html :
Embora o ajuste das configurações de desempenho para "alto desempenho" seja provavelmente a melhor configuração para um servidor de banco de dados, tenho certeza de que o EIST e / ou o C1E fizeram com que as CPUs apresentassem desempenho inferior , embora devessem ter retornado às configurações normais quando o carregamento aumentou substancialmente. A grande ressalva para mim parece ser "o que é uma carga substancial?" De acordo com o site overclockers.net, eles afirmam que o EIST usa essas configurações de "esquemas de energia" para manipular as configurações da CPU. Mas não há indicação de porcentagem de carga ou por quanto tempo saber quando retornar as CPUs à voltagem normal.
Mais uma vez, não sou especialista no assunto de CPUs Intel, mas aposto que o ajuste dessas duas configurações pode proporcionar a economia de energia desejada e o desempenho que você deve obter, mas mantendo a configuração de "desempenho máximo" é tão eficaz sem a necessidade de reiniciar.
fonte
A resposta rápida é: é claro que a economia de energia afetará o desempenho.
A resposta mais longa não é divertida. Basicamente, tente uma configuração, teste o desempenho e decida com o que você pode viver.
As aplicações e os sistemas são tão complicados que não há resposta imediata, exceto "sim, o tempo de reação e outras velocidades do sistema serão afetados". Se for muito mais lento que o disco rígido ou a rede - bem, você entendeu. Teste na realidade.
fonte
Eu sempre tento fazer a VM de tantos servidores quanto possível, mas onde eu tenho que 'bare-metal' um servidor é normalmente o que eu preciso ou quero um desempenho totalmente consistente. Portanto, para essas máquinas críticas para os negócios, EU NUNCA ligo qualquer coisa relacionada à economia de energia, exatamente pelas razões pelas quais você está enfrentando.
*** credenciais bang-goes-my-green *
fonte
Algumas coisas:
Verifique o BIOS para garantir que o gerenciamento de energia esteja sob controle do SO. É possível que ele esteja configurado para ser gerenciado pelo firmware e, portanto, usando um gerenciamento de energia do processador estúpido e não ideal.
Verifique se há algum hotfix relacionado ao gerenciamento de energia que possa estar faltando. Havia alguns notáveis na época em que o Vista / Server 2008 foi lançado.
Verifique a configuração detalhada do Balanced. É possível que outro recurso de economia de energia esteja causando o desempenho reduzido. Em teoria, o desempenho atingido pelo EIST deve ser insignificante, embora, novamente, um banco de dados SQL tenha uma pegada única e é possível que seja afetado desproporcionalmente pelo gerenciamento de energia do processador.
fonte
Algumas informações da Microsoft (formato Word Doc, infelizmente)
Aprimore a eficiência energética e gerencie o consumo de energia com o Windows Server 2008 R2
Esses recursos específicos de economia de energia da CPU no nível do hardware são os mesmos em qualquer sistema operacional, é claro, é apenas uma questão de você ativá-los ou não.
O gráfico de economia de energia sem gerenciamento de energia da CPU, versus o gerenciamento de energia da CPU:
Fica claro que (e este gráfico mostra isso) em altos níveis de utilização, o gerenciamento de energia da CPU é desativado automaticamente. O que não estou claro, no entanto, é se, em níveis baixos de utilização, há impacto no desempenho geral do servidor, por exemplo, tempo de resposta em consultas simples do SQL Server.
fonte
Você nunca deve nunca usar as configurações do Windows ou o Bios Speedstep que vem nos processadores Intel e também há um equivalente da AMD. Isso pode causar problemas, e eu já vi problemas em que, com o Speedstep, o relógio da CPU continuava saltando para cima e para baixo erraticamente, mesmo que o uso de recursos da CPU fosse consistente.
Se você quer ser mais verde e poupar energia, usar processadores de baixa potência, designados com o personagem L antes do nome do modelo, tais como L série 54xx e L 55xx série de Intel.
EDIT: Me desculpe se eu dei a impressão de que esse recurso sempre falha, eu acabei de ser queimado por ele e, em um sistema de missão crítica, não posso fazer esse tipo de coisa acontecer, então apenas tento ficar longe disso.
fonte
Quando você está falando sobre desempenho em um servidor, existem algumas maneiras diferentes de analisá-lo. Há o tempo de resposta aparente (semelhante à latência da rede) e a taxa de transferência (semelhante à largura de banda da rede).
Algumas versões do Windows Server são fornecidas com as configurações de energia balanceada ativadas por padrão. Como Jeff apontou. O Windows 2008 R2 é um deles. Atualmente, muito poucas CPUs são de núcleo único; portanto, essa explicação se aplica a quase todos os servidores Windows em que você se depara, com exceção das VMs de núcleo único. (mais sobre isso depois).
Quando o plano de energia equilibrada está ativo, a CPU tenta reduzir a quantidade de energia que está usando. A maneira como faz isso é desabilitando metade dos núcleos da CPU em um processo conhecido como "estacionamento". Apenas metade das CPUs estará disponível por vez, portanto, consome menos energia durante períodos de pouco tráfego. Isso não é um problema por si só.
O que é um problema é o fato de que quando as CPUs não estão estacionadas, você duplicou os ciclos de CPU disponíveis para o sistema e desequilibrou repentinamente a carga no sistema, passando de (por exemplo) 70% de utilização para 35% de utilização. O sistema analisa isso e, após o processamento da explosão do tráfego, ele pensa: "Ei, eu devo ligar um pouco para economizar energia". E assim é.
Aqui está a parte ruim. A fim de evitar uma distribuição desigual de calor e energia nos núcleos da CPU, ele tende a estacionar as CPUs que não foram estacionadas recentemente. E para que isso funcione corretamente, a CPU precisa liberar tudo, desde os registros da CPU (cache L1, L2 e L3) até algum outro local (provavelmente a memória principal).
Como um exemplo hipotético, digamos que você tenha uma CPU de 8 núcleos com C1-C8.
Quando isso acontece, todos eles se tornam ativos por algum período de tempo e, em seguida, o sistema os estacionará da seguinte maneira:
Mas, ao fazer isso, há uma boa sobrecarga associada à liberação de todos os dados do cache L1-L3 para que isso aconteça, para que erros estranhos não ocorram nos programas que foram liberados do pipeline da CPU.
Provavelmente, existe um nome oficial para isso, mas eu gosto de explicar isso como uma surra de CPU. Basicamente, os processadores estão gastando mais tempo fazendo trabalhos ocupados movendo dados internamente do que atendendo a solicitações de trabalho.
Se você tiver algum tipo de aplicativo que precise de baixa latência para suas solicitações, precisará desativar as configurações de Energia Balanceada. Se você não tiver certeza se isso é um problema, faça o seguinte:
Se você vir algum deles estacionado, notará que metade deles está estacionado a qualquer momento, todos serão acionados e a outra metade será estacionada. Alterna para frente e para trás. Assim, as CPUs do sistema estão se debatendo.
Máquinas virtuais: esse problema é ainda pior quando você está executando uma máquina virtual, porque há uma sobrecarga adicional do hipervisor. De um modo geral, para que uma VM seja executada, o hardware precisa ter um slot no tempo disponível para cada um dos núcleos a cada intervalo de tempo.
Se você possui um hardware com 16 núcleos, é possível executar VMs com mais de 16 núcleos totais, mas para cada divisão do tempo, apenas 16 CPUs virtuais serão elegíveis para esse intervalo de tempo e o hypervisor deve ajustar todos os núcleos para uma VM nessa fatia do tempo. Não pode ser espalhado por várias fatias de tempo. (Uma divisão do tempo é essencialmente um conjunto de ciclos de CPU X. Pode ser 1000 ou pode ser 100k ciclos)
Ex: hardware de 16 núcleos com 8 VMs. 6 possuem 4 CPUs virtuais (4C) e 2 possuem 8 CPUs virtuais (8C).
Timeslice 1: 4x4C Timeslice 2: 2x8C Timeslice 3: 2x4C + 1x8C Timeslice 4: 1x8C + 2x4C
O que o hipervisor não pode fazer é dividir metade da atribuição de uma fatia de tempo nas 4 primeiras CPUs de uma VM de 8 vCPU e, em seguida, na próxima fatia de tempo, dê o restante para as outras 4 vCPU dessa VM. É tudo ou nada dentro de um tempo.
Se você estiver usando o Hyper-V da Microsoft, as configurações de controle de energia poderão ser ativadas no sistema operacional host, o que significa que elas serão propagadas para os sistemas clientes, afetando-os também.
Depois de ver como isso funciona, é fácil ver como o uso das configurações do Balanced Power Control causa problemas de desempenho e servidores lentos. Um dos problemas subjacentes é que a solicitação de entrada precisa aguardar a conclusão do processo de estacionamento / desparqueamento da CPU antes que o servidor possa responder à solicitação de entrada, seja uma consulta ao banco de dados, uma solicitação do servidor da Web ou qualquer outra coisa .
Às vezes, o sistema estaciona ou desarma a CPU no meio de uma solicitação. Nesses casos, a solicitação inicia no pipeline da CPU, é despejada e, em seguida, um núcleo de CPU diferente inicia o processo a partir daí. Se for uma solicitação pesada o suficiente, isso pode acontecer várias vezes ao longo da solicitação, alterando o que deveria ter sido uma consulta ao banco de dados de 5 segundos para uma consulta ao banco de dados de 15 segundos.
A maior coisa que você verá ao usar o Balanced Power é que os sistemas parecerão mais lentos para responder a quase todos os pedidos que você fizer.
fonte