
Estou trabalhando em uma máquina virtual que executa o SQL Server Express (como parte do 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 500GB (7200RPM)
- Executando Ubuntu 10.04 Server 64 bits
- VMware Server 2
Máquina virtual
- Windows Small Business Server 2003
- 2 vCPUs alocadas e 2 GB de RAM
- Usando arquivo VMDK simples pré-alocado de 100 GB
O problema que tenho é que há um processo executado no SQL Server que consome muita CPU. No antigo servidor físico do qual migramos para a máquina virtual, isso utilizaria ambos os núcleos da CPU, de modo que o processo sqlserver.exe estaria rodando 100% em cada um dos núcleos da CPU. Na máquina virtual, parece usar apenas um dos dois núcleos da CPU, o que significa que a execução do processo é muito mais lenta.
Pergunta
Existe uma maneira deforçaSQL Server (processo sqlserver.exe) para usar ambos os núcleos da CPU e distribuir sua carga entre eles? Esta é uma configuração do VMware que precisa ser alterada para permitir que os processos usem ambos os núcleos?
Responder1
Não tenho muita experiência com bancos de dados MS SQL Express em máquinas virtuais, mas acho que você acabou de encontrar as restrições de hardware do MS SQL Express Edition.
Presumo que seu servidor físico tenha 1 CPU com 2 núcleos. O MS SQL Express 2008 (e acho que 2005 também) suporta apenas UMA CPU física, 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 é limitado a 1 vCPU.
Responder2
No vSphere (e isso pode não ser aplicável ao servidor VMware, mas pode ser útil para pessoas que se deparam com esta resposta), você pode alterar o número de "núcleos por soquete" apresentados a uma VM para refletir com precisão o multi-core (ou hyper-threading ) CPU.
Veja este artigo:http://www.virtualizationbuster.com/?p=132