Sql-server – Is it possible to Increase storage performance in azure vm using disk striping

azure-vmcloudperformancesql serverstorage

Given the following Azure VM:

E8s_v3 (8 cpu, 64 GB RAM, 12800 IOPS, 192 MBps)
I added 2 SSD Premium drives, one for data (1024 GBs / 200 MBps / Host Caching enabled read-only) and one for Logs (256 GBs / 125 MBps / No Cache enabled)

When I perform a simple test with CrystalDiskMark I get 134 MBps for the data disk and 127 MBps for the log file. I assume that the data disk is not getting closed to 192 MBps (Azure VM limit) because of the enabled host caching.

My question is: if I use disk striping, let's say, instead of 1 TB disk, I add 2 512 GBs (150 MBps); would that give me around ~300 MBps?? Or simply there's no way that one volume (stripe or not), inside the azure VM, runs faster than the limit set by the VM size, 192 MBps for our example VM model: E8s_v3?

Any idea on how to improve storage performance? The only way I see would be to increase the VM size and the disk size but of course, that would increase our cost a lot. In our local servers, we have really fast SANs that are around thousands of MBps and it's impossible to get those speed in the cloud at a rational cost, if ever.

Thanks!

Best Answer

I'm going to preface my answer by indicating I tried this out a few years ago during a demo of Azure's initial IaaS offerings so things have almost certainly changed.

Yes, you can provision multiple disks and create a spanned volume but I'd also check the segment size of the LUNs. If you're looking for high throughput to scan in tables like for building OLAP cubes on entire fact tables, be sure to indicate a high segment size like 256K. My first IaaS test was with the default 64k segment size better used with OLTP workloads and performance was negatively impacted as a result.