I'm running VMWare Workstation 8 on top of a storage capable of doing 200K+ IOPS. The problem is I can't get more than 15K IOPS from a Linux guest no matter how man vCPU or iothreads I'm trying to use. Everything just piles up with wio as far as Linux guest sees it with the same 15K IOPS total.
Now if I run a second VM (and so on) I can get 15K IOPS in each. So three VMs can happily push 45K IOPS combined no problem.
It appears to me that VMWare workstation has some choke through which all I/O for a single VM has to go and it is not scaling well. Anybody is familiar with how IO is done? Does it have to flow through some sort of single-threaded process in the hypervisor which limits how much a single VM can push?
Now if I run a second VM (and so on) I can get 15K IOPS in each. So three VMs can happily push 45K IOPS combined no problem.
It appears to me that VMWare workstation has some choke through which all I/O for a single VM has to go and it is not scaling well. Anybody is familiar with how IO is done? Does it have to flow through some sort of single-threaded process in the hypervisor which limits how much a single VM can push?