How to identify vMotion stun time
search cancel

How to identify vMotion stun time

book

Article ID: 436882

calendar_today

Updated On:

Products

VMware vCenter Server 8.0 VMware vSphere ESX 8.x

Issue/Introduction

  • Need to verify if a VM stun duration exceeded the 500ms vMotion goal.

  • Troubleshooting application timeouts or cluster heartbeat failures during a vMotion.

  • Validating network performance and RTT impact on migration switchover.

Environment

8.0u3

Cause

When a migration begins, the first iteration copies the entire memory contents of the virtual machine to the destination host. Each subsequent iteration copies only the memory pages that were modified (dirty page) during the preceding iteration. This process continues until the remaining set of dirty pages is small enough that it can be transferred within the 500 ms switchover time goal. At that point, the virtual machine is stunned (guest execution is suspended) and the final pages are sent. Once the destination host acknowledges receipt, the VM resumes execution there and the stun ends.

Resolution

  1. Identify Start of Stun (Source Host) hostd.log
    The virtual machine begins the stun process at this exact timestamp:
    2026-06-24T20:35:49.069Z In(05) vcpu-0 - Migrate: VM starting stun...

  2. Identify End of Stun (Destination Host) hostd.log
    Execution resumes on the destination host when the VMM restore is marked complete at this timestamp:
    2026-06-24T20:35:49.378Z In(05) vcpu-0 - Migration took 2468 micro secs to complete restore with result 0x0, migration status complete

  3. Calculate the Stun Duration
    Subtracting the start time from the end time yields the total internal stun duration:
    49.378 seconds - 49.069 seconds = 0.309 seconds (309 milliseconds)


    2026-06-24T20:35:49.438Z In(166) Hostd[2177316]: [Originator@6876 sub=Vcsvc.VMotionDst.6456828490020728347] Vmotion task succeeded with result: (vim.host.VMotionManager.VMotionResult) {
    2026-06-24T20:35:49.438Z In(166) Hostd[2177257]: -->    vmDowntime = 315087,
    2026-06-24T20:35:49.438Z In(166) Hostd[2177257]: -->    vmStunTime = 0,
    2026-06-24T20:35:49.438Z In(166) Hostd[2177257]: -->    vmPagesSrcTime = 0,
    2026-06-24T20:35:49.438Z In(166) Hostd[2177257]: -->    vmNumRemotePageFaults = 0,
    2026-06-24T20:35:49.438Z In(166) Hostd[2177257]: -->    dstMigrationTime = 314630,
    2026-06-24T20:35:49.438Z In(166) Hostd[2177257]: -->    vmotionRTT = 64,
    2026-06-24T20:35:49.438Z In(166) Hostd[2177257]: -->    isVmotionAtHighRTT = 0,
    
    vmDowntime = 315087 microseconds is 315.087 miniseconds
    lose enough to 309 milliseconds, when accounting for NTP jitter.

Additional Information

vmDowntime: The total time from when the source VM stops to when the destination VM is ready to receive network traffic.
checkpoint_unstun: The pure time the guest execution was suspended.
vmotionRTT: Records the network round-trip time between hosts; high RTT (>10ms) can significantly increase vmDowntime.