Virtual Machine: Disk Latency Regression — Impacting 25 Linux VMs

Daan Bakker 0 Reputation points
2026-10-30T16:11:55.63+00:00

Problem description

We are experiencing a significant disk latency regression on our Azure Linux virtual machines that started between September 24 and September 27, 2026. Approximately 25 production VMs are affected, with OS disk latency increasing to about 100–200 milliseconds, leading to application performance slowing down by 2–3 times. The burst credit metrics for the OS disks, which previously showed activity, now remain at zero during this period.

Environment

Azure Virtual Machines running Linux in West Europe and East US 2 regions. The affected disks include StandardSSD_LRS, Premium SSD, and Standard SSD, all using NVMe controllers with ReadOnly host caching.

What I've already tried

I have reviewed performance metrics from September 16–22 and October 3–9, noting increased latency and decreased burst credit metrics during the regression. I have performed inventory-wide performance comparisons, kernel rollback testing, compared with newly provisioned VMs, upgraded disk SKUs, checked VM limits, and conducted platform health checks. I also collected guest logs and system diagnostics, but no definitive cause has been identified.

Current status

I am seeking assistance to understand the root cause of this latency regression and to identify platform-side issues or configuration changes that may have contributed. I would like guidance on the next steps for investigation and resolution.

Azure Virtual Machines
Azure Virtual Machines

An Azure service that is used to provision Windows and Linux virtual machines.

0 comments No comments

3 answers

Sort by: Most helpful
  1. Daan Bakker 0 Reputation points
    2026-11-03T16:45:16.29+00:00

    Thanks for the replies. We collected fresh Azure Monitor data for one affected VM. How should we interpret the absence of reported bandwidth burst-credit use alongside disk pressure and slower workloads? Does this evidence warrant a platform-side investigation?

    Disk-intensive workloads became roughly 2–3 times slower around September 24–27, 2026. Our original monitoring comparison flagged approximately 25 production VMs, mostly in West Europe and one in East US 2. The example below concerns one West Europe VM.

    Configuration

    • Standard_D8as_v7 with a 512 GiB Standard SSD LRS OS disk, ReadOnly host caching, and no separate managed data disk.
    • Ubuntu 24.04.5 LTS, currently running kernel 7.0.0-1017-azure.
    • The managed OS disk is exposed through NVMe as /dev/nvme0n1, with ext4 root on /dev/nvme0n1p1. A loop filesystem is backed by a file on root. Root mount options include discard and commit=30.

    Azure Monitor observations

    We queried the same VM on November 3 using five-minute intervals. The baseline covers September 16–23, 2026, end exclusive; the recent period covers October 27 at 14:39:37 UTC through November 3 at 14:39:37 UTC.

    Observation Baseline Recent week
    Highest reported OS Disk Used Burst BPS Credits Percentage 21% 0%
    Five-minute bandwidth burst-credit samples with nonzero use 53 of 2,016 0 of 2,015
    Highest reported OS Disk Used Burst IO Credits Percentage 22% 4%
    Highest five-minute average OS disk write throughput 132.04 MB/s 88.28 MB/s
    Mean OS disk queue depth across the window 3.68 10.97

    MB/s means decimal MB/s. One recent burst-credit interval is missing and excluded. Azure Monitor reports a 100 MB/s target and 150 MB/s maximum burst bandwidth in both periods. It reports target/max-burst IOPS of 550/600, while the current disk resource reports 500 IOPS and 100 MB/s. What explains the difference in target IOPS?

    Two five-minute intervals provide comparison points:

    Metric September 16, 01:35 UTC November 2, 01:44 UTC
    Average OS disk write throughput 131.91 MB/s 66.56 MB/s
    Average OS disk bandwidth consumed 100% 99.4%
    Average OS disk queue depth 54.64 31.73
    Bandwidth burst credits used 9% 0%
    Average VM uncached bandwidth consumed 27% 13.4%

    The November interval suggests disk-level pressure despite VM uncached bandwidth headroom. Write throughput alone was below the disk's 100 MB/s target; could reads or caching explain the near-100% disk bandwidth consumption?

    We understand that 0% used credits does not mean credits were exhausted, and recent IOPS burst-credit use does not mean all bursting stopped. Production workloads differed between periods, so these observations do not prove failed burst delivery. We also understand that credit-based bursting is best effort.

    Latency and guest evidence

    Our earlier 100–200 ms figures came from Azure Monitor's OS Disk Latency metric, which Microsoft documents as unsupported for NVMe controllers. Those figures and the original latency-based fleet selection need qualification. The observations above do not rely on that latency metric.

    On September 27 at 03:26:52 UTC, kernel 7.0.0-1014-azure reported dockerd blocked in D state for more than 122 seconds. The trace shows a filesystem writeback wait during OverlayFS unmount, but does not identify the cause. A containerd.io update occurred on September 26, and recent logs contain OverlayFS warnings about overlapping lower/upper/work directories, so a guest-side contribution remains possible. A mostly idle ten-second guest sample on November 3 did not reproduce the slowdown. Our original monitoring comparison flagged approximately 25 servers, although the latency metric used for that selection is unsupported on NVMe. Other servers were not flagged, and newly provisioned servers with comparable configurations have not shown the same workload slowdown.

    Checks completed

    Kernel rollback did not resolve the issue. Premium SSD upgrades helped partly but did not restore previous performance. Resource Health and Service Health showed no explanatory events. We have not performed a controlled resize or cache-mode change on this VM.

    What does this evidence indicate about disk pressure and burst behavior? If another customer-side test is needed to distinguish possible causes, please explain what it would establish and which measurements to collect together.

    Was this answer helpful?

    0 comments No comments

  2. kagiyama yutaka 5,655 Reputation points
    2026-11-02T21:35:30.2433333+00:00

    I think the 0% burst reading needs checking. If it's OS Disk Used Burst IO Credits Percentage, that tracks credits used, not remaining. So 0% doesn't mean they're exhausted. OS Disk Latency (Preview) isn't available for NVMe either.

    Which metric shows 0%, and how was the 100–200 ms measured? For one affected VM, compare disk IOPS, throughput and latency around Sept 24–27. Send that comparison, the VM/disk resource IDs and UTC timestamps to Azure support to check for platform-side issues.

    Was this answer helpful?

    0 comments No comments

  3. Hemant Bharadwaj 90 Reputation points Microsoft Employee
    2026-11-01T14:51:10.0466667+00:00

    Likely cause: because this started in a narrow time window across many VMs and multiple disk SKUs/regions, this is more likely a throughput/IO-path constraint at VM+disk combination level (or host/caching interaction) than a single-guest regression.

    1. Validate effective limits at both layers (VM and disk), not disk alone:
      • VM-level IOPS/throughput caps can throttle all attached disks.
      • Disk SKU limits and bursting behavior must be checked together.
      Reference: https://learn.microsoft.com/en-us/azure/virtual-machines/disks-performance
    2. Correlate per-VM metrics during the regression window:
      • OS disk Read/Write latency
      • VM uncached IOPS/throughput utilization
      • queue depth / await / %util in guest (iostat)
      If VM-level utilization is near cap while disk-level headroom exists, the bottleneck is likely VM-side.
    3. Test one controlled mitigation branch:
      • Branch A: temporarily move one representative VM to a size with higher uncached disk throughput/IOPS.
      • Branch B: for one VM, test host caching mode change (ReadOnly → None) on OS disk in maintenance window.
      • Branch C: place workload on a dedicated data disk (or striped set) to isolate OS-disk bottleneck.
    4. Because this affects ~25 production VMs across regions, open a support request for backend platform correlation and include:
      • impacted VM list + regions
      • exact onset window (Sept 24–27)
      • before/after latency metrics and burst-credit behavior
      • one VM where mitigation branch changed outcome
      Support process: https://learn.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request

    Confirmed facts from your post:

    • Cross-VM impact (~25 Linux VMs)
    • Latency increased to ~100–200 ms
    • Burst metrics changed behavior in the same period
    • No conclusive cause after guest/kernel/SKU checks

    Possible cause (not yet confirmed): VM-level disk bandwidth ceiling or host-path behavior change interacting with NVMe + ReadOnly cache pattern.

    Validation checks:

    • Latency returns near pre-regression baseline on test VM.
    • VM uncached throughput utilization drops below sustained cap.
    • Application response times recover proportionally.

    Risk/side effect notes:

    • VM resize and caching changes can require restart and may cause short downtime.
    • Caching changes can alter consistency/performance characteristics; test on one VM first.

    “If you find this answer helpful, please upvote it. If this resolves your issue, please mark it as the accepted answer so that it can help others in the community.”

    Was this answer helpful?

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.