VMware + SQL Server - sqlserver.exe não está usando os dois núcleos de CPU

1

Estou trabalhando em uma máquina virtual que executa o SQL Server Express (como parte da Sage Line 50 Manufacturing). Os detalhes são os seguintes:

Servidor físico (máquina host)
 - Intel Xeon Quad Core 2.1GHz
 - 4GB de RAM
 - Imagem VMDK armazenada em unidades SATA RAID-5 de 500 GB (7200 RPM)
 - Executando o Ubuntu 10.04 Server 64 bit
 - VMware Server 2

Máquina virtual
 - Windows Small Business Server 2003
 - alocou 2 vCPU's e 2GB de RAM  - Usando o arquivo VMDK plano pré-alocado de 100 GB

O problema que tenho é que existe um processo que é executado no SQL Server que é intensivo da CPU. No servidor físico antigo do qual migramos para a máquina virtual, isso utilizaria os dois núcleos da CPU para que o processo sqlserver.exe fosse executado 100% em cada um dos núcleos da CPU. Na máquina virtual, parece apenas usar um dos dois núcleos da CPU, o que significa que o processo é muito mais lento de executar.

Pergunta
Existe uma maneira de forçar o SQL Server (processo sqlserver.exe) a usar os dois núcleos de CPU e distribuir sua carga entre eles? Esta é uma configuração do VMware que precisa ser alterada para permitir que os processos usem os dois núcleos?

    
por fistameeny 09.06.2010 / 13:08

2 respostas

5

Eu não tenho muita experiência com os bancos de dados MS SQL Express em máquinas virtuais, mas Eu acho que você acabou de encontrar as restrições de hardware do MS SQL Express Edition.

Suponho que seu servidor físico tenha 1 cpu com 2 núcleos. O MS SQL Express 2008 (e eu também penso 2005) suporta apenas UM cpu físico, mas vários núcleos.

Uma VM reconhece cada vCPU como uma única CPU e não como um núcleo adicional. Portanto, o processo sqlserver.exe está limitado a 1 vCPU.

    
por 09.06.2010 / 15:29
1

No vSphere (e isso pode não ser aplicável ao servidor VMware, mas pode ser útil para pessoas que tropeçam nesta resposta) você pode alterar o número de "núcleos por soquete" apresentado a uma VM para refletir com precisão vários núcleos (ou hyper-threading) CPUs.

Veja este artigo: link

    
por 14.10.2010 / 18:38