在这篇文章中,首先我要感谢下云大师:Max Shen,10多年SQL性能调优专家,以及IT解决方案顾问(云大师博客)。在这里帮我解决了WEB压力测试的相关问题,在次特别感谢。

接下来我们可以开启该虚拟机规模集的伸缩功能

35.Azure创建自动伸缩虚拟机规模集(下)_第1张图片

创建一个自动伸缩的规则:

在这里定义了这些时间:

  • 时间聚合:这是用于聚合采样指标的聚合方法。例如TimeAggregation = "Average" 将采用平均数来聚合采样指标。

  • 时间粒度统计信息:这是timeGrain期间的聚合方法。例如,statistic = "Average" 且 timeGrain = "PT1M" 表示1分钟以采用平均值的方法聚合指标。

  • 持续时间(分钟):这是查看过去指标的时间段。例如,10分钟意味着每当自动缩放运行时,它会查询过去10分钟内的指标。这可使指标趋于稳定并避免对瞬态峰值做出反应。

  • 冷却(分钟):某缩放操作后再次缩放前需要等待的时间。例如,如果冷却时间为10分钟且刚发生了一个缩放操作,则自动缩放会在10分钟后再尝试缩放。这也是为了使指标趋于稳定。

35.Azure创建自动伸缩虚拟机规模集(下)_第2张图片

定义为CPU持续10分钟保持70%以上就扩展增加VM实例数,每次扩展1台,最多3台;CPU持续10分钟保持25%以下就缩小减少VM实例数,最小保持1台。最后点击保存。

35.Azure创建自动伸缩虚拟机规模集(下)_第3张图片

接下来要做下压力测试了,测试的目的是为了提高CPU的利用率,以验证我们规模集的伸缩功能,因此我修改下伸缩参数

当CPU大于7%持续5分钟就开增加VM实例;当CPU小于3%持续5分钟就开始递减VM实例;便于更快更明显的看到效果。

35.Azure创建自动伸缩虚拟机规模集(下)_第4张图片

我们先看看Azure的虚拟机规模集实例目前只有1台VM

35.Azure创建自动伸缩虚拟机规模集(下)_第5张图片

负载均衡器的后端池也自动连接了这台VM

35.Azure创建自动伸缩虚拟机规模集(下)_第6张图片

接下来我们要先SSH连接到这台VM

35.Azure创建自动伸缩虚拟机规模集(下)_第7张图片

配置SSH连接我们的第一台VM实例

35.Azure创建自动伸缩虚拟机规模集(下)_第8张图片

输入Powershell定义的账户和密码登录成功

35.Azure创建自动伸缩虚拟机规模集(下)_第9张图片

先观察目前我们这台虚拟机的CPU情况,运行非常的低98.7 id意思就是空闲98.7%

35.Azure创建自动伸缩虚拟机规模集(下)_第10张图片

接下来我开始并发1000个访问请求进行压力测试,让CPU至少高于7%持续运行5分钟后

35.Azure创建自动伸缩虚拟机规模集(下)_第11张图片

可以看到Azure后台检测到了CPU已经达到缩放规则要求,并开始新增实例VM虚拟机

35.Azure创建自动伸缩虚拟机规模集(下)_第12张图片

同时在负载均衡器的入站NAT规则里也会自动生成每一个新增VM实例的访问端口

35.Azure创建自动伸缩虚拟机规模集(下)_第13张图片

同时新增的VM也自动加入后端池

35.Azure创建自动伸缩虚拟机规模集(下)_第14张图片

接下来我关闭WEB压力测试,让CPU小于3%,持续等待5分钟,可以看到开始递减VM实例了

35.Azure创建自动伸缩虚拟机规模集(下)_第15张图片

可以在历史记录中看到所有的自动缩放记录

35.Azure创建自动伸缩虚拟机规模集(下)_第16张图片

当VM的虚拟机CPU继续持续小于3%时,又开始继续递减VM实例了,最后只会剩下1台VM实例保持运行

35.Azure创建自动伸缩虚拟机规模集(下)_第17张图片

除了监视CPU为自动缩放规则外还可以添加其他性能指标来决定伸缩

35.Azure创建自动伸缩虚拟机规模集(下)_第18张图片

这样就实现了根据实际的业务WEB访问变化而自动扩展和递减前端WEB虚拟机的效果了,保障高峰WEB访问期间可以全自动横向添加前端WEB服务器提高用户访问并发量和体验了。