Rock and Azure Recommendations

We are still in testing phase of Rock and expecting to go live in next couple of months. Can anyone using Rock and Azure share with me following so I can try to “tune” Azure VM and SQL as much as possible before launch. We are using Azure running a 2019 Windows server for Rock web and separate SQL instance (not on VM). Thanks in advance for any info./suggestions you can provide,

  1. How many CPU/RAM for Rock VM.
  2. How many DTU (and Standard or Premium) for SQL instance.
  3. How many end users daily and how many checkin stations running during service.

Hi Mike,
In the instances I manage, a 5DTU SQL server and dual CPU web server with SSD and 8GB RAM (IIRC comfortably under $100/mo for Azure credits) serves nice and speedy responses. Rock is pretty efficient.

In general, it depends on how busy your RockRMS instance will be and that is determined by the number of concurrent users as well as planned features. The vast majority of churches won’t need to spend the entirety of Microsoft’s generous $3,500/yr grant for Azure. The Rock document on Azure provides some reasonable ranges: Rock Solid Azure Hosting | Rock Community

I hope that helps.

Hey Mike, I’m glad you asked this on here.
Currently we’re using D8s_v3 for IIS VM and I really need to try and get it down on price it’s really starting to get out of hand. I just changed our sandbox size to B2ms to see how that performs of course it won’t have all the traffic but I hear the B sizes are burstable and have the ability to generate credits when not being used.

Our current SQL size is General Purpose, Provisioned, 4 vCores, 500 GB Data max size.

@jeremyhoff if you’re knowledgeable about this stuff I’d love for you to check out my environment because I feel I have overkill and it’s costing us much more than the Azure credit provides.

I have collected a few configs from other churches as well:
Church1
B2ms - 2 vcpu 8GB Memory

Church2:
Ds11v2 - 2cpu 14 GB RAM (SQL VM)
B2s 2cpu 4GB RAM (IIS VM)

Church3:
One IIS VM (F32s_v2 32 VCPUs, 64 mem)
Azure SQL DB (GP Gen 5 20 cores)
Current DB Size 289 GB

We’re using B2Ms and 4DTU for SQL. We have 250 total users, but typically max at 100 or so at a time. We run 32 checkins across 3 sites. We just moved from an A2 standard and it is noticeable.

Hey Collin - is it noticeable in a good way or bad way?

Hi Joe - how many concurrent users do you have, and how many kids do you check in at peak times, and how many check in stations? With that it’ll help determine – even a small VM will support plenty, but skimping can make checkin and reporting feel laggy, and you don’t want timeouts when performing bulk updates…

I anticipate around 75-100 daily users M-TH, and on weekend about 60 checkin stations (but on weekend during checkin very few individual users). My test SQL instance right now is set as S1:20 DTUs and VM running Rock IIS is DS2v2 (2 cpus, 128 SSD, 7GiB memory). We were doing a training with about 40 users and it was really sluggish and not running any checkin during that time. It seems from what I can tell that the D2S2 ($108) VM should be good bit faster than B2ms machine if I am looking at it correctly. And lowest I see on SQL database is Basic 5DTU, but ours is set at Standard 20DTU. Should I raise SQL DTUs in Std. or move to Prem. SQL DTUs?

Mike, you might also look into Reserved Instances in Azure rather than Pay-As-You-Go instances. They do save a pretty significant amount of money (over 60% in our case) especially if you are committed to keeping the instances for a longer period of time. Our Dev instance is Standard D2s v3 (2 vcpus, 8 GiB memory) and our Production Instance is Standard B4ms (4 vcpus, 16 GiB memory). We run about 20 to 30 checkin stations regularly for about 800 kids on Sundays.

Thanks Mike - good info. Bear in mind that IMHO checkin lag will be more important than user lag. I’m not suggestion that users are unimportant… but checkin in very “public facing” so it’s worth watching that more closely…

During training, I’m wildly guessing that you had 40 users actively working on the system all under directions to do the same thing at the same time. Do you suppose you’d have the same workload during the week? (I’m not being rhetorical… honest question… :slight_smile:)

That said, I am a tad surprised your config felt really sluggish during training. Did you happen to have the azure performance monitoring tools open during the training? It would be good to confirm whether the DTU monitor was “pegged” during training or not… helps understand whether you have a combined IO/CPU/Memory problem (i.e. not enough DTUs) or if the lag came from elsewhere. Also keep note of the footer in RockRMS, where the Page Load Time (and other info) is displayed proudly to users with assigned access.

I agree with checkin and “public facing”. Would hate to promote as better or easier checkin and have it run slow. So we did another training yesterday, and I moved SQL up to S1:50 DTUs and things ran much better. Last week at 20DTU, SQL was pegging out at 100% but Rock IIS VM was only at 10% or less. With VM staying same and SQL increased to 50DTU, during our training Max cpu on VM was 30% and SQL hit about 60% but not sluggish at all. So hopefully that will be the sweet spot for now, and will increase if need too.