![Windows Azure 自动缩放(CPU 使用率除外)](https://linux22.com/image/669262/Windows%20Azure%20%E8%87%AA%E5%8A%A8%E7%BC%A9%E6%94%BE%EF%BC%88CPU%20%E4%BD%BF%E7%94%A8%E7%8E%87%E9%99%A4%E5%A4%96%EF%BC%89.png)
我有一个相当简单的 .NET MVC 应用程序。不需要太多的计算能力。但是,我们预计会有大量的流量。
我一直在使用 Blitz.IO 模拟并发用户,当并发用户数达到 8000 左右时,我开始注意到速度明显变慢,我想触发自动缩放事件。问题是 CPU 使用率只有 3% 左右。所以我的瓶颈不是 CPU。
我们当前的设置是分布在三个不同区域的三个 Web 应用程序,最多 30 台虚拟机。
我注意到在 Azure Web App 部分中,您可以按数据输入、日期输出、Http 队列进行扩展。我不太确定要使用哪一个,或者每个指标的具体含义是什么。而且我无法通过谷歌搜索找到这些指标的确切含义。
答案1
对于 Web 应用,您基本上有数据输入/输出、内存、CPU、磁盘队列和 HTTP 队列(使用预览门户查看所有这些)。通过只观察监视器中这些值在增加并发用户数量时的行为,即使您不完全理解它们,您也应该能够想出一个阈值来与自动缩放配合使用。以下是每个的简要说明:
中央处理器:平均 CPU 利用率(所有 VMS)
记忆:平均内存利用率(所有 VMS)
磁盘队列长度:待处理磁盘操作的数量。如果您的应用程序从磁盘读取/写入大量数据,这可能是您的差距。队列越多,您的 Web 服务器等待磁盘 I/O 继续的时间就越多。
Http 队列长度:待处理的 HTTP 操作数。如果您的应用程序收到的请求数超出了 Web 服务器的处理能力,则这可能是您的差距。通常是 CPU 的问题,但并非普遍情况。
数据输入/输出:流量入口/出口量(千字节)。如果您的应用程序传输大量数据,则网络带宽可能会成为您的缺口。
这是一个非常好的教程,可帮助您开始使用预览门户配置自动过时功能。
https://azure.microsoft.com/en-us/documentation/articles/web-sites-scale/