windows azure 自动缩放

windows azure automatic scaling

您好,我在 Windows Azure 上部署了一个作为云服务的 Web 应用程序。现在我正在对这个应用程序执行一些 load/stress 测试。在 Azure 管理门户中,我已将 Web 角色配置为在 CPU 超过 40% 时自动缩放。

我只使用此 Web 角色的一个实例开始测试。随着测试的进行,我设置了并发用户数随着时间的推移增加到2000个用户。

开始测试后,我通过远程桌面连接到 Azure 上的 Web 角色实例,并监控 CPU 使用情况。大约 10 分钟后,CPU 一直处于 100%(事实上我在测试中的请求需要很长时间才能完成)但是如果我检查同一个网络角色的 CPU在 Azure 管理门户上,它显示 1、2 或 6,有 70% 的峰值,但它立即下降(但从未在远程桌面连接时在其任务管理器中看到的值)甚至不显示任何值(我转到我的云服务的仪表板页面),这意味着图表不再更新。

此外,这就是我的问题的重点,没有执行任何 web 角色实例的缩放。

任何想法where/what我想念什么?如果我的解释不完整,请随时询问。

云服务或虚拟机的 CPU 指标的自动缩放没有您预期的那么快(约 10 分钟以上)。在此场景中,CPU 指标是 1 小时内所有服务实例的平均值。因此,您的自动缩放操作不会立即生效。

您可以阅读更多相关信息以及配置自动缩放设置的一些建议here

如果您想更严格一点,请查看 this post,我在其中展示了如何使用监控服务管理库设置 TimeWindow。采用这种方法,您也许可以更接近您想要的结果。

需要考虑的几点:

1) 正如 Rick 指出的那样,默认情况下 CPU 是按小时平均计算的

2) 如果您从只有一台服务器开始,然后自动扩展到 2 台,您的第一台服务器将在扩展操作期间从负载均衡器中拔出。您真的应该始终至少拥有 2 台服务器。

3) 请随时查看 AzureWatch(link 在我的个人资料中)..它旨在执行相当高级的缩放场景,并允许您在不接触 API 的情况下配置缩放规则