Azure, self service boost for a VM (32 times the original size!)

This time I’m going to share you a short demonstration of what you can achieve with the PowerApps. My case here is a user who needs self service control over some aspects of his virtual machine. In this case I’m going to demonstrate giving this user access to a “turbo boost” self service functionality. I assume that he usually get’s along well with small VM but every now and then requires plenty more of CPU capacity.

Starting from small

This is the initial setup for this demonstration. A E2s_v3 sized VM.

Initial VM, details

To get some data for comparison I’m going to run Prime95 benchmark and PassMark Performance test. Results are just as expected, with cheap VM size you cannot expect high performance.

Initial VM, PassMark results

Then it’s time to give the user the tools he needs! Let’s welcome a PowerApp called “ScaleTest”. This is published as a website and is fully accessible with a mobile phone.

PowerApp, “ScaleTest”

Scaling vertically when needed

The user can launch the scale up process from the “ScaleTest” application. In the background the PowerApp calls an Azure automation runbook. This time it’s a powershell runbook with predefined values defining which VM to scale and desired size after scaling. After the runbook takes action the VM will restart. The hole process from pressing the button to finnish takes some 1-2 minutes. As a result we have a E64s_v3 VM instead of the E2s_v3 that we started with.

Scaled up VM, details

After the scale up I’m running the same tests again to see what kind of differences this makes.

Scaled up VM, PassMark results

For the Passmark total result we are seeing over 10 times the performance. For individual results the difference is even bigger (~30 times difference). Yey, this time hitting top 1% of submitted results!

TestPerformance difference
2048K FFT20,5
2048K FFT19,6
2304K FFT21,2
2304K FFT20,3
2400K FFT21,7
2400K FFT20,3
2560K FFT21,3
2560K FFT20,3
2688K FFT23,2
2688K FFT21,9
2880K FFT22,5
2880K FFT20,9
3072K FFT21,7
3072K FFT21,6
3200K FFT26,5
Average21,6 times the performance of initial setup

For the Prime95 we are also seeing over 20 times performance boost. The difference obviously depends on the workload used. And of course scaling vertically is somewhat cumbersome compared to horizontal scaling options but sometimes it’s the only possibility.


The user gets control of things with ease. For a newbie like me, it took less than a day to learn how to use Azure automation and PowerApps enough to create this demonstration.

If there would be an actual use case like this I would have achieved the following:

  • Self service
  • Cost efficiency (running small most of the time)
  • Business benefits (running large when you need it)

Same magic works for scale down as well. You can combine what ever you need with this process. Perhaps you want to schedule forced scale down for every evening? Or scale down based on low CPU usage metrics? Or give the user access to some completely different aspects of his resources.

This content was brought to you “Just Because I Can”!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.