0

I'm developing an application on Windows, and I would like to run tests on how gracefully I handle situations where I'm bottlenecked by slow disk I/O. Unfortunately (fortunately?), all drives I have access to are too fast to test this properly.

Is there a way, on Windows, to artificially introduce slowdown (low throughput, high latency, and/or both) for accessing physical, RAM, and/or network drives?

Some way to set exact values ("Limit to X kB/s, add Y seconds of latency") would be preferable to ensure that my tests are reproducible.

1 Answers1

4

There's no built-in ways to induce it in specific increments at the OS level in windows. Some testing you can do though is:

  • Run a hard drive stress test script or tool like HeavyLoad at the same time

  • The answer here shows how to set processes to higher or lower I/O priority levels, so it will have different delays under high I/O loads.

  • Run windows in a virtual machine, where you can set max IOPS values for the whole VM.

  • Use a network disk location like an NFS/SMB share. Temporarily disconnect from the network for extreme spikes, or set network interface speeds down to 10 Mbps to crawl.

There may be ways to manipulate the I/O streams within the application, but it depends on how you're developing it.

Cpt.Whale
  • 10,914