mattmcspirit / azurestack

Azure Stack Resources
80 stars 41 forks source link

How much RAM? #64

Closed jeffgilb closed 5 years ago

jeffgilb commented 5 years ago

How much RAM is required to run the script successfully? It would be cool to have it kind of broken down for full and then how much each of the RP deployments requires to run. I've got a few ASDK boxes, but some are much less RAM heavy than others!

mattmcspirit commented 5 years ago

Good point Jeff - I'll add this to my documentation but here anyway - all VMs that my script deploys are Standard A2's with 3.5GB RA. The MySQL/SQL RPs themselves are fixed by the RP installers at 3.5GB each.

Total with all RPs deployed = 42GB in addition to the core running Azure Stack ASDK VMs

I tend to use a Standard A2 for all of my VMs that the script deploys (apart from the fixes SQL/MySQL RP which i just use their default). I wouldn't want to adjust the database hosts required for the database RPs, however for the App Service, I could probably drop the VM size for the File Server to an A1, and most of the App Service VMs to an A1 also, as per here: https://docs.microsoft.com/en-us/azure/azure-stack/azure-stack-app-service-deploy#run-the-app-service-resource-provider-installer, which may save 8-10GB RAM, but not much more I suspect.

What are your thoughts?

jeffgilb commented 5 years ago

Ahh that’s not a lot at all really! Very cool!

One issue I’ve come across already is that it doesn’t let you choose or specify which Azure subscription to use for registration. I’ve got two subscriptions, but want to use one specifically (as the other fails). We put in this command in the registration docs to account for this behavior:

Get-AzureRmSubscription -SubscriptionID '' | Select-AzureRmSubscriptionhttps://docs.microsoft.com/en-us/azure/azure-stack/azure-stack-registration

Maybe there’s a way to specify the subscriptionID GUID to use for registration when running the script?

From: Matt McSpirit notifications@github.com Sent: Wednesday, November 21, 2018 5:18 PM To: mattmcspirit/azurestack azurestack@noreply.github.com Cc: Jeff Gilbert Jeff.Gilbert@microsoft.com; Author author@noreply.github.com Subject: Re: [mattmcspirit/azurestack] How much RAM? (#64)

Good point Jeff - I'll add this to my documentation but here anyway - all VMs that my script deploys are Standard A2's with 3.5GB RA. The MySQL/SQL RPs themselves are fixed by the RP installers at 3.5GB each.

Total with all RPs deployed = 42GB in addition to the core running Azure Stack ASDK VMs

I tend to use a Standard A2 for all of my VMs that the script deploys (apart from the fixes SQL/MySQL RP which i just use their default). I wouldn't want to adjust the database hosts required for the database RPs, however for the App Service, I could probably drop the VM size for the File Server to an A1, and most of the App Service VMs to an A1 also, as per here: https://docs.microsoft.com/en-us/azure/azure-stack/azure-stack-app-service-deploy#run-the-app-service-resource-provider-installerhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fazure-stack%2Fazure-stack-app-service-deploy%23run-the-app-service-resource-provider-installer&data=02%7C01%7CJeff.Gilbert%40microsoft.com%7C7aec8ce85af8452fbff208d64fff3105%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636784354793779243&sdata=CO9H3aRYaRydUIJgUOtWNAdrRfS33%2B%2Fg%2FKo0RuIFj%2Bs%3D&reserved=0, which may save 8-10GB RAM, but not much more I suspect.

What are your thoughts?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmattmcspirit%2Fazurestack%2Fissues%2F64%23issuecomment-440827502&data=02%7C01%7CJeff.Gilbert%40microsoft.com%7C7aec8ce85af8452fbff208d64fff3105%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636784354793789252&sdata=t2httpwbLdxMOT%2Bx7nCxWlkeKDi8fdYdlff6pnkANPY%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAMPQRErpbH5-2KegxBtnrQEnfmc2lPTEks5uxdEVgaJpZM4YtvIW&data=02%7C01%7CJeff.Gilbert%40microsoft.com%7C7aec8ce85af8452fbff208d64fff3105%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636784354793799260&sdata=igseEaled%2F0eSCOf9WjdvnCrA7yomlcdTY9ydk2xkPw%3D&reserved=0.

jeffgilb commented 5 years ago

Never mind, I realized you just need to provide the subscriptionID GUID for the -azureRegSubId parameter.

How do you handle the requirement for a unique registration name when registering with Azure?

mattmcspirit commented 5 years ago

It creates the registration name dynamically based on “asdkreg-$asdkHostName-$runtime”

So you end up with a pretty unique name that’s easily identifiable by the computer name of the ASDK host you’re running on, and the date/time you register the ASDK, down to the second. Likely unique every time.

gijs007 commented 5 years ago

My colleague recently made a demo which used almost all the RAM on our 128GB server.

We had about 5GB of free RAM left and the ASDK was a bit sluggish, if you can reduce the VM's RAM usage by 8 - 10 GB without any consequences that would be great :)

mattmcspirit commented 5 years ago

Well the Azure Stack VMs on my freshly deployed ASDK host, show 53GB consumed, however, my ASDK host itself is showing a total of 83GB in use, so I'm not sure where that extra 30GB has gone. On a 128GB system, 42GB + 83GB would only just fit, but even if the random memory loss was lower, it would still be tight.

I've made some adjustments and am running a test run now. If all is well, I should be able to reduce 42GB down to 25GB.

I'll share my findings soon.

Thanks

mattmcspirit commented 5 years ago

Here's the final info, after testing. I had errors deploying the file server for App Service with 1.75-2GB RAM, so left that at 3.5GB, however I reduced others where possible. Deployment time was still around 3:30, so not too much impact.

The ASDK Configurator will deploy a total of 12 additional virtual machines to support the MySQL, SQL Server, and App Service Resource Providers, should you choose to deploy all the RPs. You will therefore need an ASDK host machine that has at least 29.5GB free memory to support these additional virtual machines:

MySQL RP - 2 VMs (RP VM, DB Host VM) = 5.5GB SQL Server RP - 2 VMs (RP VM, DB Host VM) = 5.5GB App Service - 8 VMs (File Server, SQL Host, Front End Scale Set, Shared Worker Tier, Publisher Scale Set, CN0-VM, Management Servers Scale Set) = 18.5GB

Total with all RPs deployed = 29.5GB in addition to the core running Azure Stack ASDK VMs

Before you run the ASDK Configurator, ensure that you have enough memory available on your ASDK host system. On a typical ASDK system, the core Azure Stack VMs will already consume between 50-60GB of host memory, so please ensure you have enough remaining to deploy the additional resource providers. A system with 128GB memory is recommended.

gijs007 commented 5 years ago

Nice work 👍

I've noticed the infra VM's use dynamic memory, perhaps it makes sense to use this for the App Service VM's?

mattmcspirit commented 5 years ago

Nice try....but the Infra VMs aren't deployed by Azure Stack. They are deployed by the deployment scripts, talking directly to Hyper-V, hence their names are Azs-### and not GUIDs, and they can have dynamic memory enabled etc.

Any VMs deployed by Azure Stack itself, have to use the T-Shirt sizes that Azure/Stack provide, and therefore, no dynamic memory.

Any smaller than what I've used above, and I think things will start to break :)