VMware + SQL Server: sqlserver.exe no utiliza ambos núcleos de CPU

VMware + SQL Server: sqlserver.exe no utiliza ambos núcleos de CPU

Estoy trabajando en una máquina virtual que ejecuta SQL Server Express (como parte de Sage Line 50 Manufacturing). Los detalles son los siguientes:

Servidor físico (máquina host)
- Intel Xeon Quad Core 2,1 GHz
- 4 GB de RAM
- Imagen VMDK almacenada en unidades RAID-5 SATA de 500 GB (7200 RPM)
- Ejecución de Ubuntu 10.04 Server de 64 bits
- VMware Server 2

Máquina virtual
- Windows Small Business Server 2003
- 2 vCPU asignadas y 2 GB de RAM
- Uso de un archivo VMDK plano preasignado de 100 GB

El problema que tengo es que hay un proceso que se ejecuta en SQL Server que consume mucha CPU. En el antiguo servidor físico desde el que migramos a la máquina virtual, esto utilizaría ambos núcleos de CPU, por lo que el proceso sqlserver.exe se ejecutaría al 100% en cada uno de los núcleos de la CPU. En la máquina virtual, parece que solo usa uno de los dos núcleos de la CPU, lo que significa que el proceso es mucho más lento de ejecutar.

Pregunta
¿Hay alguna manera defuerza¿SQL Server (proceso sqlserver.exe) utilizará ambos núcleos de CPU y distribuirá su carga entre ellos? ¿Es esta una configuración de VMware que debe cambiarse para permitir que los procesos utilicen ambos núcleos?

Respuesta1

No tengo mucha experiencia con las bases de datos MS SQL Express en máquinas virtuales, pero creo que acabas de encontrarte con las restricciones de hardware de MS SQL Express Edition.

Supongo que su servidor físico tenía 1 CPU con 2 núcleos. MS SQL Express 2008 (y creo que también 2005) admite solo UNA CPU física pero múltiples núcleos.

Una VM reconoce cada vCPU como una única CPU y no como un núcleo adicional. Por lo tanto, el proceso sqlserver.exe está limitado a 1 vCPU.

Respuesta2

En vSphere (y esto puede no ser aplicable al servidor VMware, pero puede ser útil para las personas que se topan con esta respuesta), puede cambiar la cantidad de "núcleos por socket" presentados a una VM para reflejar con precisión el multinúcleo (o hyper-threading). ) CPU.

Vea este artículo:http://www.virtualizationbuster.com/?p=132

información relacionada