Como diseñador de sistemas operativos, estoy completamente de acuerdo con el resultado de las mediciones. La cantidad de mierda producida en otros lugares sobre el tema es increíble.
Vea el número de núcleos lógicos como el número de subprocesos / procesos paralelos que puede ejecutar el HW. Esto se logra duplicando, por ejemplo, los registros y los punteros de instrucción de un núcleo de CPU. El núcleo de la CPU ahora decide qué hilo (puntero de instrucción) usar. Decidirá usar el otro subproceso ya que las instrucciones del subproceso actual no están disponibles en el caché y deben recuperarse, por ejemplo, de la memoria o el caché L3. Este mecanismo creará una mejora potencial del 10% -30% en las instrucciones / segundos o el rendimiento de la CPU.
Si ejecuta una sola aplicación con un hilo, no podrá obtener este beneficio, pero si ejecuta dos aplicaciones de alta carga en, por ejemplo, un HT Pentium antiguo, podrá obtener los beneficios. Lo mismo es cierto, por supuesto, para las aplicaciones, que tienen más de un hilo. Mi sistema Linux tiene 200 subprocesos, por lo que siempre hay algunos beneficios que dependen de la carga real. Todas estas observaciones se aplican sin virtualización.
Virtualbox solo limita el número de subprocesos que pueden ejecutarse en paralelo para cada máquina virtual (VM), pero el programador del proceso del host cambiará los procesadores lógicos y, por lo tanto, los procesadores físicos, en los que los procesos de VM se ejecutan dinámicamente. Si ejecuta aplicaciones de alta carga en una VM, los núcleos lógicos adicionales le brindarán el mismo beneficio del 10% al 30%. La carga puede ser una sola aplicación multiproceso o un conjunto de aplicaciones diferentes.
En los sistemas modernos con VT-x o AMD-V no hay penalización de rendimiento por maximizar el número de núcleos lógicos, ya que tampoco existe una penalización de rendimiento notable por ejecutar más máquinas virtuales al mismo tiempo. Su límite es el rendimiento de su chip de CPU, por lo que no puede reproducir videos en 3 máquinas virtuales al mismo tiempo sin ralentizar cada máquina virtual, ya que tienen que compartir la misma CPU física.
Su sistema host podría volverse irresponsable si renderiza un video en una VM con todos los núcleos lógicos presentes, pero tendría casi el mismo problema si ejecutara esa aplicación de renderizado en su host. Al menos en VM tiene una opción y puede resolverla limitando la carga máxima de CPU al 80% -90% o reduciendo el número de núcleos por este motivo.