¿Puede un único núcleo virtual en una máquina virtual utilizar más de un núcleo físico?

Tengo un servidor que funciona dual cupon de la CPU central con hyper threading.

Tenemos una máquina virtual de Windows 2003 y tiene un solo núcleo.

Al usar prime95 me doy cuenta de que encabeza hacia fuera en alrededor de 2.3Ghz (cada núcleo es 3ghz en ese servidor).

¿Hay de todos modos que ESXi puede dejar que la única CPU virtual utilice más de un núcleo físico?

Sé que es una extraña, pero sólo jugar a lo largo de 🙂

Gracias.

Es tanto sí y no en lo que mi entendimiento va, pero no sí por las razones que desea. Esa cantidad de 1 vcpu que le diste a tu máquina virtual no significa que siempre permanecerá en el core # 2 de la cpu # 1, pero significa que nunca usará> 1 core.

Puesto que usted tiene solamente una máquina virtual en su servidor usted no está viendo la carga de trabajo distribuida sobre los varios núcleos porque el programador de la CPU nunca ve que es necesario moverlo de ese solo núcleo. Sin embargo, si comenzara a alojar más máquinas que vean diferentes cargas de trabajo e incluso si todas ellas estuvieran asignadas a un solo vcpu, entonces cualquier máquina no necesariamente estaría ejecutándose en el mismo núcleo físico en todo momento.

El trabajo se puede distribuir a través de varios núcleos, dependiendo de cómo el planificador de CPU de ESXi lo considere apropiado. Dicho esto, VMware todavía no puede dividir un único vcpu sobre dos núcleos físicos al mismo tiempo. Todo lo que puede hacer es migrar esos vcpus a otro núcleo físico si el equilibrador de carga piensa que es beneficioso hacerlo, es decir, si un núcleo se vuelve abrumado con el trabajo y otro núcleo está inactivo, ESX migrará el vcpu a ese núcleo inactivo.

Me gustaría leer sobre este artículo a partir de la página 6 y más en la sección 3.3.1 en la página 10 si realmente desea ver cómo funciona el diseño: http://www.vmware.com/files/pdf/techpaper/VMW_vSphere41_cpu_schedule_ESX .pdf

Esto no es un límite de VMware sino de cómo funcionan los procesadores y el software en general. La idea que tienes es una especie de santo grial de la computación multi-cpu, consiguiendo una carga de trabajo de una sola aplicación roscada para ser distribuido sobre múltiples núcleos con el fin de aumentar el rendimiento. Es más o menos exactamente lo contrario de hyperthreading: en lugar de obtener un núcleo para hacer el trabajo de dos núcleos para aumentar el ancho de banda de ejecución paralela, obtendría dos núcleos para hacer el trabajo de un núcleo dos veces más rápido. De todos modos eso es probablemente más técnico de lo que quería que fuera.

No, pero si averiguas cómo no querrás ir diciendo a todo el mundo de la ciudad cómo hacerlo a menos que estén ofreciendo un par de dólares 🙂

No, no puede. No es una bala mágica que de alguna manera cambie la arquitectura del procesador.