Windows Server 2025 / Ajustar CPU, memoria y discos VHDX de una VM Hyper-V
Ajuste los recursos de una máquina virtual (VM) según la capacidad del host y el trabajo del invitado; aumentar procesador, memoria o disco no garantiza mejor rendimiento. Registre primero la configuración original y cambie una sola variable por vez para poder comparar el resultado y recuperar el estado anterior.
Separar la capacidad del host de los recursos del invitado
Un procesador virtual (vCPU) es un recurso presentado al invitado, no necesariamente un núcleo físico reservado. La memoria puede ser fija o dinámica, y un VHDX es un archivo que Hyper-V presenta como disco virtual. Varias VM comparten procesador, memoria y almacenamiento del host: la presión o la latencia en esa base puede afectar a varios invitados. Compare las dos perspectivas de la tabla, sin confundir espacio libre del volumen invitado con espacio libre del volumen que guarda su VHDX.
| Recurso | Qué observar en el host | Qué observar en el invitado |
|---|---|---|
| Procesador | Otras VM, configuración y competencia por CPU. | Uso del procesador durante la misma tarea y tiempo de respuesta. |
| Memoria | Capacidad disponible y memoria asignada a los invitados. | Uso, paginación y necesidades de la aplicación. |
| Almacenamiento | Tamaño del archivo VHDX, espacio físico libre y latencia. | Capacidad del volumen, sistema de archivos y espacio libre. |
Use HVTEST01 creada e instalada para pruebas, sin datos importantes; “de prueba” no significa que su disco de sistema esté vacío. Trabaje como administrador en HV1 y conserve acceso de consola. Antes de cada cambio apague normalmente Windows dentro de esa VM y confirme State Off en Hyper-V, no un estado guardado ni una pausa. La práctica no depende de cambios en caliente. Registre los resultados de estas consultas antes de modificar nada; recuperar CPU o memoria documentadas es distinto de intentar reducir un disco que ya contiene datos.
Comparar el número de vCPU con la misma tarea
Get-VM -Name 'HVTEST01' | Select-Object Name,State,ProcessorCount
Get-VMProcessor -VMName 'HVTEST01' | Select-Object Count,Reserve,Maximum,RelativeWeight
- Guarde el número actual de procesadores y los valores Reserve, Maximum y RelativeWeight de la consulta, sin cambiar estos últimos. El ejemplo presupone los dos vCPU del ejercicio de creación; si su valor actual difiere, conserve y adapte el plan en vez de forzar dos como supuesto origen.
- Con HVTEST01 Off, abra Configuración → Procesador en Hyper-V y cambie únicamente el número de dos a uno. Confirme que es la VM de pruebas y aplique.
- Arranque el invitado y repita la misma tarea administrativa acotada, por ejemplo consultar los mismos datos de Servidor local. Mantenga tamaño de trabajo y condiciones comparables; una consulta pequeña no mide la capacidad máxima.
- Anote uso y tiempo en el invitado, junto con carga de fondo del host y cualquier diferencia de condiciones. Puede revisar los procesadores lógicos en Administrador de tareas; no invente una mejora si no hay una diferencia clara.
- Apague normalmente, confirme Off y restablezca dos vCPU si eran el valor inicial. Vuelva a consultar ProcessorCount y compruebe un arranque normal antes de continuar con memoria.
Una tarea ligera puede dar resultados parecidos con uno o dos vCPU. Eso no demuestra que todos los servicios rindan igual ni que más vCPU siempre ayuden: la asignación excesiva entre invitados puede aumentar la competencia por el host. No cree carga artificial no planificada para forzar una diferencia. Si el trabajo, la caché o las tareas de fondo cambian, marque las mediciones como no comparables en vez de atribuir el efecto solo al procesador.
Elegir memoria fija o dinámica con un objetivo
La memoria dinámica ajusta la asignación según demanda y condiciones del host dentro de mínimos y máximos configurados; Startup indica la memoria de inicio. El máximo no reserva esa cantidad físicamente. Compruebe la compatibilidad del invitado y de la aplicación y presupueste el arranque simultáneo. La documentación de Set-VMMemory describe los parámetros; los valores 2/4/6 GB del bloque son una elección de esta práctica, no un ejemplo literal ni una recomendación de Microsoft. En PowerShell representan 2/4/6 GiB binarios, con mínimo ≤ inicio ≤ máximo. Con la VM Off, ejecute primero Get-VMMemory, guarde DynamicMemoryEnabled, Minimum, Startup y Maximum fuera de la ventana y solo entonces aplique Set-VMMemory:
Get-VMMemory -VMName 'HVTEST01' | Select-Object DynamicMemoryEnabled,Minimum,Startup,Maximum
Set-VMMemory -VMName 'HVTEST01' -DynamicMemoryEnabled $true -MinimumBytes 2GB -StartupBytes 4GB -MaximumBytes 6GB
Arranque y observe la memoria asignada y la demanda en Hyper-V junto con uso y paginación en el invitado y memoria libre del host. Repita la misma tarea limitada; no agote la memoria deliberadamente. Un arranque que falla puede indicar falta de capacidad de inicio, pero conserve el mensaje y compruebe el contexto antes de atribuirlo a un valor. Después de comparar, apague normalmente y confirme Off. Solo si el estado original era fijo con 4 GiB, el bloque siguiente vuelve a esa modalidad y memoria inicial:
Set-VMMemory -VMName 'HVTEST01' -DynamicMemoryEnabled $false -StartupBytes 4GB
Ese comando de vuelta solo cambia DynamicMemoryEnabled y StartupBytes; no recupera Minimum y Maximum ni otras propiedades que haya modificado. Mantenga los valores originales registrados y use las propiedades de Memoria de esa VM o los parámetros correspondientes de Set-VMMemory para restaurarlos cuando proceda, verificando después con Get-VMMemory. Si antes usaba otra memoria fija o dinámica, no aplique 4 GiB como si fuera su estado inicial. Aunque los límites queden inactivos en modo fijo, revíselos antes de volver a activar memoria dinámica: guardar este resultado como “restauración completa” sería incorrecto.
Inspeccionar capacidad virtual y crecimiento del archivo
Los discos fijos asignan su almacenamiento configurado al crearse; los dinámicos crecen al escribir datos. Un disco de diferencias depende de un padre y la cadena debe conservarse completa. El crecimiento dinámico necesita espacio físico libre, aunque el invitado aún muestre espacio disponible. En HV1 inspeccione las rutas conectadas antes de tocar archivos. Get-VHD consulta el objeto de disco; un error por archivo en uso o acceso desde otro host no significa que esté vacío o pueda eliminarse:
Get-VMHardDiskDrive -VMName 'HVTEST01' | Select-Object ControllerType,ControllerNumber,ControllerLocation,Path
Get-VMHardDiskDrive -VMName 'HVTEST01' | ForEach-Object { Get-VHD -Path $_.Path } | Select-Object Path,VhdType,FileSize,Size,ParentPath
Size muestra la capacidad virtual y FileSize el tamaño del archivo en el host, no el espacio libre dentro del invitado. Borrar un archivo del invitado no garantiza que el VHDX se reduzca inmediatamente. ParentPath indica una dependencia de padre y esta consulta no recorre por sí sola toda la cadena. Los AVHDX de puntos de control y sus padres participan en ella. No borre, renombre o edite manualmente esos archivos para liberar espacio ni modifique directamente un padre conectado mediante diferencias.
Agregar un disco sin confundirlo con ampliar un volumen
- Antes de apagar, abra diskmgmt.msc dentro del invitado y registre discos, tamaños y letras existentes. Después apague HVTEST01, confirme Off y registre ruta y posición del disco del sistema con Get-VMHardDiskDrive. Compruebe que no tiene datos importantes sin copia y que conserva espacio real en el host.
- Abra Configuración → Controladora SCSI → Disco duro → Agregar. Revise la ranura y no seleccione el disco del sistema ya conectado.
- Cree con Nuevo un VHDX de expansión dinámica independiente llamado HVTEST01-Data.vhdx, capacidad 20 GB, en una ruta nueva prevista y comprobada como inexistente. Si el archivo existe, deténgase; no lo sobrescriba ni lo seleccione como si fuera el nuevo disco. Revise el resumen antes de aplicar.
- Arranque el invitado y abra diskmgmt.msc. Compare el inventario previo y posterior para identificar el disco recién conectado por tamaño y contexto. No dé por hecho que siempre será Disco 1 ni que un estado RAW demuestra que puede borrar datos.
- Solo tras identificar inequívocamente el nuevo disco, inicialícelo como tabla de particiones GUID (GPT), cree un volumen simple, use una letra libre y formatéelo como NTFS para esta prueba. No inicialice otro disco. Confirme capacidad y letra, cree en el volumen nuevo un archivo propio DataLab52.txt con el texto PruebaHVTEST01, guárdelo, ciérrelo y vuelva a abrirlo para comprobar el mismo contenido. Conserve el archivo antes de retirar la conexión si lo necesita.
Los parámetros de creación de VHD distinguen discos nuevos, fijos, dinámicos y de diferencias. Agregar el nuevo disco no amplía C:. Aumentar un VHDX existente es otra operación que exige copia recuperable, revisión de puntos de control y condiciones del controlador; después hay que extender también la partición y el volumen del invitado. Para una extensión básica con Administración de discos, el espacio sin asignar debe estar en el mismo disco y justo después del volumen, y el sistema de archivos debe admitirla, como NTFS o ReFS. Una partición intermedia puede impedirlo: no borre una partición de recuperación para continuar a ciegas.
No mezcle reducción, conversión y desconexión forzada como una sola prueba. Antes de retirar el disco de datos nuevo, preserve sus archivos, apague normalmente HVTEST01 y confirme Off. En Configuración quite solo la conexión SCSI que apunta a HVTEST01-Data.vhdx, comparándola con la ruta del disco del sistema registrada antes. Verifique que el disco del sistema permanece conectado y que la VM sigue arrancando. Desconectar no borra el VHDX; antes de una eventual eliminación separada compruebe que ninguna otra VM o cadena de diferencias depende de él. No reduzca el disco de sistema para recuperar simplemente el tamaño anterior.




