[edit 18-02-2011: It has come to my attention that the info in this article was incorrect / outdated. The LSI Logic has a default queuedepth of 32. Even if the LSI could go higher than 32 it would be capped by either the device queue depth or disk.schednumreqoutstanding. To enable a single VM to have a queuedepth larger than 32 the pvscsi card should be used and for optimal performance all layers should be aligned.)
A couple of months ago at the Dutch VMug meeting Bouke-Jumé gave some good storage tips. This is one of them:
The LSI Bus Logic Controller / Driver has a standard queue depth of 256. Although it isn’t possible to set this higher it is possible to add a second controller and when you make sure the SCSI ID of your disk corresponds to the SCSI card you will have another queue of 256. This can lead to improved performance for Database Servers, Fileservers and other I/O intensive VM’s.
Open the properties of the VM,
For the first disk and SCSI Controller 0 go to the virtual disk and select 0:X
For the second disk and SCSI Controller 1 go to the virtual disk and select 1:X
And so on…
Roger Lund says
Do you have a example VMX file for this?
I would like to see this in more detail.
Roger L
korman says
FYI…
When adding an additional disk on a “2nd” Controller you will not see the 1:x option when the VM is powered on. Powerdown the VM and you will be able to add disks on the 0:x, 1:x, 2:x and 3:x
Michael Nauen says
What queue depth has the parallel pvscsi controller?
More than the LSI Bus Logic Controller ?
Albert says
OK, So does this means that creating new Hard Disk with each own pvSCSI controller doesn’t do anything in terms of performance ?
Duncan Epping says
Unless you bump up every single queue out there it wouldn’t do much indeed as you would simply hit a limit on another level and I/O would get queued.
someone else says
Am I wrong in thinking that the device queue depth or disk.schednumreqoutstanding caveats don’t apply to NFS storage?
I’ve got an SSD based storage array on 10Gb ethernet connections, capable of ~60,000 iops. Since I’m not worried about overloading the array, is there any downside to just setting all my vm’s to have a scsi queue depth of 128 (or higher for the pvscsi)?