Get the Most Performance in Azure for a Large Number of Data Disks

When you have more than 8 disks in a storage pool, you need to perform an extra step to get the full performance.

John Savill

December 19, 2014

1 Min Read
virtual storage

Q: I created a 16-disk storage space in my Azure virtual machine, but I'm not seeing 8000 IOPS for an 8K workload; why?

A: Most likely, when you created the storage space you didn't change the number of columns parameter from the default of 8 to 16, which is required (otherwise, all 16 disks won't be used in parallel and therefore won't see the combined 8000 IOPS—i.e., 500 per disk).

For example:

$disks = Get-StoragePool –FriendlyName StoragePool1 -IsPrimordial $false | Get-PhysicalDiskNew-VirtualDisk –FriendlyName VirtualDisk1 -ResiliencySettingName Simple –NumberOfColumns $disks.Count –UseMaximumSize –Interleave 256KBGet-VirtualDisk –FriendlyName VirtualDisk1 | Get-Disk | Initialize-Disk –Passthru | New-Partition –AssignDriveLetter –UseMaximumSize | Format-Volume –AllocationUnitSize 64K

Notice that the -NumberOfColumns parameter is set to the number of disks in the pool to fully utilize the underlying storage pool. The –Interleave parameter enables you to specify the number of bytes written in each underlying data disk in a virtual disk; 256KB works well for most workloads.

About the Author

Sign up for the ITPro Today newsletter
Stay on top of the IT universe with commentary, news analysis, how-to's, and tips delivered to your inbox daily.

You May Also Like