Azure Performance Woes
In recent weeks I’ve been experimenting with Microsoft Azure as a migration path for a workload that
has been rapidly expanding. This particular workload is a .NET /
MS SQL web application that has hefty back end SQL queries and some pretty advanced UI/UX coding.
Optimization – “It’s probably not an Azure Performance Issue.”
My use case for Azure was to set up a test environment for a new version of said .NET application. This version has some pretty slick performance optimizations and should be up to 25% faster than the existing version. In testing, though, this was clearly not the case on Azure. Compared with our physical boxes, the new Azure environment was actually markedly slower.
Here’s a quick breakdown of the first iteration of the test environment:
Web server: 4 Cores | 17GB RAM
Azure SQL for databases with S0 Tier Performance – 10 DTUs (Database Throughput Units, because who needs industry standard performance metrics?)
Performance was terrible. Borderline unusable. I noticed however that I had inadvertently created the cloud SQL instance in the US East2 data center while the web server was in the US East data center. Woops! With this realization I set out to provision a new SQL instance in the US East data center expecting great things…
Alas, it was not that simple, though, I mean, is it every really that easy? (Hint: not really)
I tried bumping up the performance (and thereby the cost) of the database with minute gains.
So the next logical step was to try a dedicated SQL server with some decent performance which is geographically close to the web server. I took it a step further and rebuilt the web server as well, with SSD storage this time around. I built the SQL server with SSD storage as well and proceeded to install SQL Standard on it hoping for a magic bullet. Again, performance was still 25-50% slower than our existing physical system.
Undaunted, we marched onward and upward, building a ridiculously overpowered box in hopes to dominate the host system and escape “noisy neighbor” issues that were the suspected culprit. This thing had 16 Cores and 112GB of RAM with SSD storage… and performance still isn’t as good as an existing system with half the cores and RAM on SAS 10k drives that is running production workloads… so what gives?!
What am I doing wrong (besides trying to use Azure)?
Sadly as of this posting, I haven’t had any success getting my particular workload to run in Azure with acceptable performance. Am I missing something obvious? Did you face similar issues and find the silver bullet, or have you found it to be fine? Did you abandon Azure? Drop a note in the comments and let me know. It looks like a private cloud is going to be the only option for moving forward for the time being unless someone has some tasty tidbit of info that will help me solve the Azure performance issues I’m seeing.