I have strange throughput issue in Hyper-V Server 2016 environment: one copy of the application (eg, benchmarking software or file copy task) in the VM can't reach maximum available throughput. But if I run second and third copy of the application in the same VM, IO reach maximum available throughput, approximately 3 times more than one copy.
What could be the cause of this issue?
Are you running the copies of your application simultaneously? If yes - and then you can see max throughput - most likely a single instance can't saturate the link enough to get there. We see it quite a lot, people try to test the speed with "cp" or "dd" tools - but most (if not all) single-threaded applications simply can't stress the disks enough.
I would suggest you to use IOmeter or FIO to test your performance.
Yes, I run tests simultaneously in the same VM. But the strange thing is, if I run the tests on the passthrough connected drive from JBOD shelf with NTFS, IO reach maximum available throughput with one copy of the application.
I'll try IOmeter and report the results.