Após um pouco mais de pesquisa, parece que este é um problema geral com CPUs de servidores modernos, mesmo não relacionadas à virtualização, e grandes fornecedores de servidores, bem como fornecedores de software como Microsoft e VMWare. limite o desempenho da sua CPU . Eu ainda acho isso difícil de acreditar.
A solução para qualquer pessoa que se preocupa em ter instantaneamente o acesso a energia da CPU completa por núcleo , sem todos os núcleos a ser ocupado no início, é desativar a economia de energia (Intel SpeedStep / EIST ou AMD Cool'n 'Quieto). Dependendo da configuração da BIOS, isso pode ser controlado no nível do sistema operacional (como no Windows powercfg.cpl
plano de "High-Performance"), ou através de BIOS, neste caso a configuração OS fica acinzentado.
Brent Ozar escreveu sobre isso ( "SQL Servidor em CPUs que economizam energia não são tão rápidos. ") em 2011:
In the last few weeks, I’ve seen several cases where server upgrades have resulted in worse performance, and one of the key factors has been throttled-down CPUs. In theory, the servers should crank up the juice according to demand, but in reality, that’s rarely the case. Server manufacturers are hiding power-saving settings in the BIOS, and Windows Server ships with a default power-saving option that throttles the CPU down way too often.
Microsoft diz em KB2207548 :
In some cases you may experience degraded overall performance on a Windows Server 2008 R2 machine when running with the default (Balanced) power plan. The issue may occur irrespective of platform and may be exhibited on both native and virtual environments. The degraded performance may increase the average response time for some tasks and cause performance issues with CPU-intensive applications. [...] This issue may occur if the Power Options settings are set to Balanced. By default, Windows Server 2008 R2 sets the Balanced (recommended) power plan
Há um hotfix disponível para Win2008R2, e uma atualização de BIOS é recomendado, mas desde que esta é uma questão ainda com Win2012R2 parece que não há nenhuma maneira em torno da segunda recomendação, "High performance" plano.
Um problema com sintomas semelhantes é descrito em KB2534356 , que também oferece um hotfix somente para Win2008R2. Então, para mim, apenas os applys de solução usual (plano de alto desempenho), mas parece que uma correção pode ser possível no futuro. (Funciona muito bem em CPUs de desktop, então não entendo porque não deveria ser possível no servidor.)
Eu atualizarei esta resposta caso eu encontre uma solução melhor (ou, claro, alterarei a resposta aceita se alguém estiver postando uma solução).
Ainda pensando se EC2 ou Azure pode ter a mesma questão (neste caso, você não seria capaz de fazer nada sobre isso, pois você precisa de controle sobre o exército, mudando a configuração no VM não terá quaisquer efeitos) .
Mais algumas referências:
- Considere a otimização da potência da CPU versus o desempenho ao virtualizar (2011; follow-up em 2013
- COMO O DBPM AFETA O DESEMPENHO DA VM DE CONVIDADOS (2013)
- alta Pronto CPU com baixa utilização da CPU? ( mesmo conselho para VMWare ao experimentar altos números de "CPU pronto")