Recentemente, pedimos uma nova máquina servidora para melhorar os tempos de carregamento de página dos sites que hospedamos. O hardware é fornecido e parcialmente gerenciado por uma empresa de hospedagem. A máquina dedicada tem dois Intel Xeon E5-2650 , , que são divididos em duas VMs via KVM . Essas máquinas VMs estão executando o Windows Server 2012 R2, que usa o HyperV para 5 VMs adicionais. Uma dessas VMs é usada como o servidor de aplicativos da web. A VM é configurada com 4 núcleos físicos (8 núcleos lógicos devido ao suporte a HT) e possui 64 GB de RAM atribuídos a ela.
Estamos executando o Windows Server 2012 R2 com o IIS 8.5, o Tomcat 7 e o ColdFusion 10 (JDK 8). O desempenho (tempos de carregamento da página por solicitação) é muito ruim de forma aleatória desde que nos mudamos do nosso antigo servidor para o novo servidor. Eu monitorei gargalos comuns, como esperas de threads no banco de dados, rede, E / S, GC pausas, números de conexão e de trabalho, mas tudo parece perfeitamente bem aqui (a base de código e configuração não mudaram de qualquer maneira). A maior parte do tempo desperdiçado é de fato gasto na CPU, embora a carga raramente exceda 60%. Em seguida, testei unidades individuais de nossos aplicativos da Web e desempenho de processamento bruto (algumas operações de processamento de dados e memória) e comparei os tempos medidos com um servidor de desenvolvedor local.
A máquina local é uma Intel i7 3930 a 4.2 GHz. O i7 foi executado 5-6 vezes mais rápido que o Xeon em todas as tarefas. Estou ciente do fato de que os processadores desktop tendem a ser mais rápidos em tal comparação, especialmente devido à alta taxa de clock aqui - mas essa lacuna parece muito radical, não?
Agora, na verdade, nem estou envolvido com o servidor e a infraestrutura (sou apenas o desenvolvedor de software), mas não consigo parar de pensar que a empresa de hospedagem nos vendeu "hardware antigo", que tem um desempenho abaixo do esperado nós realmente desejamos. Ou está relacionado a como as VMs estão aninhadas? Ou as CPUs do servidor são muito mais lentas em geral?
Estou prestes a abordar este assunto e culpar o hardware. Então, eu quero uma segunda opinião sobre isso antes de fazer isso.