Packet drop caused by high tail READY time of networking ENS worlds.
search cancel

Packet drop caused by high tail READY time of networking ENS worlds.

book

Article ID: 445097

calendar_today

Updated On:

Products

VMware NSX VMware vSphere ESXi

Issue/Introduction

You can check the ready time histogram of a ENS world using the following command:

   sched-stats -w <ENS_WORLD_ID> -t run-state-histo

In the sample output below, the max READY time is 200 ms, which is high enough to cause packet drops.

4503184 4503184 EnsNetWorld-0-15
bucket                      RUN        READY         WAIT       COSTOP          NEW       ZOMBIE
(<         3 us)              0            0            0            0            0            0
(<         6 us)              0            0            0            0            0            0
(<        11 us)              0            0            0            0            0            0
(<        23 us)              0            0            0            0            0            0
(<        45 us)              0            0            0            0            0            0
(<        91 us)              0            0            0            0            0            0
(<       181 us)              0            0            0            0            0            0
(<       362 us)              0            0            0            0            0            0
(<       725 us)              0            0            0            0            0            0
(<      1450 us)              0          340            0            0            0            0
(<      2899 us)              0           77            0            0            0            0
(<      5799 us)              0           12            0            0            0            0
(<     11598 us)              0            5            0            0            0            0
(<     23195 us)              0            3            0            0            0            0
(<     46391 us)              0            2            0            0            0            0
(>=    46391 us)              0           31            0            0            0            0
       min  (us)              0         1000            0            0            0            0
       max  (us)              0       200022            0            0            0            0
       mean (us)              0        12814            0            0            0            0
    Total count:              0          470            0            0            0            0
     Total time:          0.000        6.023        0.000        0.000        0.000        0.000

       mean (us)              0        12814            0            0            0            0

    Total count:              0          470               0            0            0            0

     Total time:          0.000        6.023        0.000        0.000        0.000        0.000

Cause

When a world is placed on a busy PCPU, we rely on the vCPU migration algorithm to move it to an idle (or less contended) PCPU. However, a flaw in the current algorithm can cause it to repeatedly skip specific types of worlds. As a result, these worlds remain stuck on the busy PCPU for extended periods, causing significant scheduling delays (high READY time).

Resolution

The issue will be resolved in an upcoming release.  Subscribe to this KB to receive update notifications.

Workaround:

The problem can be mitigated by setting PcpuMigrateIdleFeedback to 0.

esxcli system settings advanced set -o /Cpu/PcpuMigrateIdleFeedback -i 0