Hyper-V very large, reproducible disk latency with Linux guest and iSCSI storage

FedericoGiR 0 Reputation points
2025-05-23T08:30:29.7166667+00:00

So, I have an odd behaviour.

The server is recent, with an iSCSI SAN (SSD disks)

Windows guests work fine, with disk access latency under 1 ms

Linux guests have a very large latency, aroud 62 ms.

Sustained data transfer rate is good.

To check for guests configuration, I exported a guest that works flawlessly on another, much older HYper-V host, and it shows large latency too.

The odd behaviour is that the latency is very reproducible, at 62 ms, with a second (less frequent) mode at around 1 ms, and some scattered results. See the benchmarks at the link below, same guest on old host (left), and new host (left)

https://drive.google.com/file/d/1VXinz6Z4Dy3whkoW_8L6TWd7xFJPSPHg/view?usp=sharing

I should conclude that Hyper-V Linux guests do not like virtual drives saved on iSCSI. Is there a way to solve the issue?

Thanks, Federico

PS Hyper-V under server 2016 core, everything updated, no other bottlenecks, etc.

Windows for business | Windows Client for IT Pros | Storage high availability | Virtualization and Hyper-V
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Eric Siron 1,591 Reputation points MVP
    2025-06-25T21:49:44.15+00:00

    From your symptoms, my guess is that the Linux kernel and Hyper-V are wrestling for management of I/O scheduling.

    Documentation for Linux on Hyper-V is hit and miss, depending on your distribution. Start here: Supported Linux and FreeBSD virtual machines for Hyper-V on Windows Server and Windows. The landing page contains links to specific distributions. Most importantly, ensure that you have enabled any software components that make your distribution aware of Hyper-V, sometimes marked as Azure components. The base Linux kernel includes all the necessary pieces, but the distributions don't always distribute them in their core packages. You might need to search off of Microsoft official docs for your distribution with Hyper-V.

    After following any distro-specific steps, go to Best Practices for running Linux on Hyper-V. A lot of that is not terribly useful, but pay attention to the section on the I/O scheduler. You want to switch to the "noop" or "none" scheduler. You might need to look up directions for your specific distribution.

    0 comments No comments

Your answer

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