A collection of scripts, templates and code for automating the deployment and benchmarking of public cloud VMs.
Simple benchmarking for purposes of comparing similar families of VMs. Public cloud providers update and change so frequently that benchmarks frequently fall out of date. This is intended as a simple way to see basic performance numbers (CPU and disk), but could be expanded significantly for more serious purposes.
In here, you'll find:
- A bash script for
- automating the installation and running of sysbench
- collecting log files generated by sysbench
- uploading logs to Azure Blob Storage (expects an Azure storage account + SAS token for write) and
- notifing via Azure Storage Queue (expects an Azure storage account + SAS token for write) of completion
- An Azure Resource Manager template, which automates the deployment of multiple sizes of Azure VMs
- deploys SSH, password-free VMs
- custom script extension runs the benchmarking script post-provision
- requires the benchmark script to be in Azure blob storage with keys or SAS tokens - or anonymously on the internet somewhere
- A Powershell script for deploying the template repeatedly
- uses Start-Job to submit each ARM template deployment in parallel
- log in via Login-AzureRmAccount (interactive) or with an Azure AD Service Principal (headless - preferable)
- size list is a comma-delimited list of Azure VM sizes (e.g., Standard_D2_v2, Standard_F4, etc.)
- each VM size listed is created once, although you could easily add in multiples, either in the Powershell loop or via the ARM template
- An Azure Function for
- deleting the Azure Resource Group or AWS VM based on the queue message
- deleting the environment (VM, NICs, storage accounts, etc) after benchmarking is complete
- AWS Support is here! Create, benchmark and destroy AWS VMs, including dedicated host VM placement.
Sysbench data parsing to structured formats.