Windows Server 2025 / VMのCPU・メモリ・VHDXを管理する
VMの資源はホストの余力とゲストの処理に合わせます。CPU、メモリ、ディスクを増やせば必ず速くなるわけではないため、元の値を記録して一つずつ比較します。
ホストとゲストの観察を分ける
vCPUはゲストへ見せるCPUで、専用物理コアとは限りません。VHDXはディスクとして見せるファイルです。ホスト不足は複数ゲストへ影響するため、CPU競合、割り当てメモリ、保存領域とゲストの使用量を併せて調べます。
HVTEST01を正常終了してOffを確認します。ここでは稼働中変更に依存しません。CPUとメモリの値は戻せても、データディスクの縮小は同じように簡単な戻し方ではありません。
CPU数だけを変えて比較する
Get-VM -Name 'HVTEST01' | Select-Object Name,State,ProcessorCount
Get-VMProcessor -VMName 'HVTEST01' | Select-Object Count,Reserve,Maximum,RelativeWeight
- 現在のCPU数を控え、停止中に2個から1個へ変更します。
- 同じ限定作業を行い、ゲストの使用率、所要時間、ホストの他負荷を記録します。
- 正常終了して2個へ戻します。
軽い作業では差が見えないこともあります。一回の観察を一般的な性能順位にせず、多数VMへの過大割り当てによる競合も考慮します。
固定と動的メモリを選ぶ
動的メモリは最小、起動、最大の範囲で需要とホスト状況に応じて変わります。最大値は確保保証ではありません。アプリ対応と起動時に必要な容量を調べます。
Get-VMMemory -VMName 'HVTEST01' | Select-Object DynamicMemoryEnabled,Minimum,Startup,Maximum
Set-VMMemory -VMName 'HVTEST01' -DynamicMemoryEnabled $true -MinimumBytes 2GB -StartupBytes 4GB -MaximumBytes 6GB
2・4・6GBはSet-VMMemoryを使う実習例です。Hyper-Vの割り当てと需要、ゲストのページング、ホストの空きを比較します。起動メモリ不足ならVMが始まらない場合もあります。元が固定4GBなら停止後に次で戻します。
Set-VMMemory -VMName 'HVTEST01' -DynamicMemoryEnabled $false -StartupBytes 4GB
仮想容量と実ファイルを区別する
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はゲストへ見せる容量、FileSizeはホスト上のファイルサイズです。固定は先に領域を確保し、可変は書き込みで増えます。ゲスト内の削除で直ちに実ファイルが縮むとは限りません。差分ディスクは親に依存し、AVHDXと親の連鎖を保つ必要があります。
ディスク追加と領域拡張を分ける
- HVTEST01を停止し、OSディスクのパスを控えます。
- SCSIへ別のHVTEST01-Data.vhdxを可変20GBで作ります。
- 起動後に新規ディスクだけを識別し、GPTと空いているドライブ文字で領域を作ります。
VHDの作成条件を確認します。既存ディスクの拡張はバックアップ、チェックポイント、接続方式を調べ、ゲスト内のパーティションも拡張します。隣接する未割り当て領域が必要な場合があります。
縮小、変換、強制取り外しを一緒に行いません。新規データの接続解除前はデータを保護して停止し、他VMや差分ディスクの参照も確認します。接続解除とファイル削除は別です。




