Azure - Extra small instance web role - ready for production?
Asked Answered
D

3

5

I'm planning for a website running in Azure. I'm estimating max. 2000 users a day creating about 20.000 hits.

I know I'm kinda vague here, but is the extra small instance ready for this kind of site? I'm using MVC 3 to create the site. Thanks for any answers.

Discarnate answered 16/6, 2011 at 16:42 Comment(0)
C
10

You'd have to do some load-testing to best judge that question. Remember that, to enjoy the benefits of Windows Azure Compute SLA, you'll need a minimum of 2 instances (so now you have instances in different fault domains, so your site remains running even if one of the instances recycles due to OS upgrade, hardware failure, etc.). The question then becomes: can two Extra Small instances handle 20,000 hits daily? This equates to approx. 10K hits per VM instance per day, or 416 hits per hour, or 7 per minute. And... even with one instance, a hit rate of 14 per minute is fairly low.

More than CPU, you might find yourself bottlenecked by bandwidth, since you'll only see about 5Mbps per instance, vs. around 100Mbps per Small instance.

You might want to run a quick test with something like LoadStorm, which provides Load Testing as a Service. This should give you a good idea of how well the XS will perform under load.

EDIT (March 2012): Extra Small instances are now $0.02 / hour vs $0.04, so you could run up to 6 XS instances for the same cost of a single Small. This makes the XS option even more compelling. See this blog post for the official announcement on the price drop (including Storage cuts as well).

Catalepsy answered 16/6, 2011 at 17:4 Comment(4)
Thanks for your answer. I'm aware of the SLA and am planning to have 2 XS instances. I was just wondering because, the hardware specs, especially the RAM doen't allow you to install Win Srv 2008. I will have a look at LoadStorm.Discarnate
FYI - All Windows Azure VMs are Windows Server 2008. The lower RAM and network bandwidth could be a factor though, performance-wise.Catalepsy
Once you have deployed you can also set the OS to Win Srv 2008 R2. Causes a redeploy probably. But I will stick with the default.Discarnate
@Discarnate - no need to do this after deployment. You can make this change locally before deploying. In ServiceConfiguration.cscfg, in the ServiceConfiguration element, just set osFamily="2".Catalepsy
A
3

I agree with David that this is very dependent on the load per request you generate (both in CPU and bandwidth resources)

I just wanted to share our own experience with the XS instances. We've found that these instances suffer from severe clock drift: http://blog.codingoutloud.com/2011/08/25/azure-faq-how-frequently-is-the-clock-on-my-windows-azure-vm-synchronized/

This could be as much as a minute of difference over the week between NTP syncs. For most applications this isn't necessarily a problem, but we used Oauth1.0a authentication with an allowed timestamp difference of 30 seconds which resulted in major headaches when using XS. The S and larger don't have shared cores and consequently suffer much less clock drift.

Affiance answered 1/11, 2013 at 13:55 Comment(0)
C
1

You get a better SLA with 2 small instances rather than 1 larger.

You should also look at your peak load. For example with 20,000 hits per day, do 50% come between 9 and 10 in the morning?

Instance storage is 20GB, if this is just your application code should not be a problem.

IO performance is low, if this is just reading your app code first time it compiles should not be a problem.

CPU single 1 GHz, if this is just web pages and little calculation should not be a problem. The time this will be really slow is during a JIT compile.

The memory is 768 MB, this could be a problem especially if you are caching data.

You save under 2 USD a day using the small instance. But that is a Latte every 2 days so maybe it is worth taking the risk and having to do an extra deploy.

Craniometry answered 16/6, 2011 at 17:19 Comment(5)
If you need to change VM size, you need to re-deploy. It's better to select an appropriate VM size prior to deploying, if possible. Also: kay.herzam specifically asked about deploying Extra Small instances (the smallest size).Catalepsy
@David thanks for the comment, I have deleted thei bit about adding instances as neededCraniometry
Actually I would have kept the comment about adding instances as needed, as that's the great thing about elastic computing. I was simply saying that the baseline instance size should be determined ahead of time. If an XS can handle non-peak loads with no issue, then you can easily scale out to more instances to handle peak load. But arbitrarily picking an instance size leaves you with unpredictability.Catalepsy
@David, I took a closer look at the size of the small instance, for the MVC apps we have built the memory size would have been a problemCraniometry
My comment about changing VM sizing needing a redeploy is no longer valid, as of October 2011. You can now change VM size, add/delete roles, and more without redeploying. See this MSDN post for more info.Catalepsy

© 2022 - 2024 — McMap. All rights reserved.