Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 定义Azure Web角色的缩放阈值_Asp.net Mvc_Azure_Scalability_Azure Web Roles - Fatal编程技术网

Asp.net mvc 定义Azure Web角色的缩放阈值

Asp.net mvc 定义Azure Web角色的缩放阈值,asp.net-mvc,azure,scalability,azure-web-roles,Asp.net Mvc,Azure,Scalability,Azure Web Roles,Azure支持弹性伸缩的概念,我已经能够通过我的工作者角色实现这一点。但是,当涉及到我的Web角色时(例如MVC应用程序),我不确定监视什么(或如何)来确定何时是增加(或减少)运行实例数的好时机。我假设我需要监视一个或多个性能计数器,但不确定从何处开始 有人能推荐一种最佳实践来评估MVC Web角色实例相对于扩展决策的负载吗 这个问题有点开放,因为监控通常是特定于应用程序的。尽管如此: 从本地服务器上查看的简单度量开始,表示应用程序的KPI。例如:可以看看网络利用率。描述System Cente

Azure支持弹性伸缩的概念,我已经能够通过我的工作者角色实现这一点。但是,当涉及到我的Web角色时(例如MVC应用程序),我不确定监视什么(或如何)来确定何时是增加(或减少)运行实例数的好时机。我假设我需要监视一个或多个性能计数器,但不确定从何处开始


有人能推荐一种最佳实践来评估MVC Web角色实例相对于扩展决策的负载吗

这个问题有点开放,因为监控通常是特定于应用程序的。尽管如此:

从本地服务器上查看的简单度量开始,表示应用程序的KPI。例如:可以看看网络利用率。描述System Center为Windows Azure收集的性能计数器。例如:

  • ASP.NET应用程序请求/秒
  • 网络接口字节
  • 收到/秒
  • 每秒发送的网络接口字节数
  • 处理器占处理器总时间的百分比
  • 逻辑磁盘空闲兆字节
  • LogicalDisk%可用空间
  • 可用内存兆字节
您可能还需要观察排队的请求数和请求等待时间

网络利用率很有意思,因为您的NIC每个核心提供大约100Mbps,即使CPU和其他资源未充分利用,也可能成为瓶颈。您可能需要扩展到更多实例来处理高带宽场景

另外:我倾向于不太重视CPU利用率,即使它很容易测量(并且经常出现在示例中)。在接近容量的情况下运行CPU通常是一件好事,因为您需要为它付费,并且可能会尽可能多地使用它


至于减少:这需要更加小心地处理。Windows Azure compute按小时计费。比如说,如果您在11:50扩展到一个额外的实例,并在12:10再次扩展,那么您只需要占用两个cpu小时。另外:您不想向外扩展,然后进行新的测量并决定现在可以再次向后扩展(有效地创建一个不断增加和减少实例的脉冲)。为了使事情更容易,考虑自动缩放应用程序块(WASABI)。这包含了所有的比例规则(如我刚才提到的),使用起来非常简单。

再加上David的精彩评论,也可以考虑使用AuturWalth@的自动缩放/监视服务,使用历史图表,您可以看到戴维提到的列表中哪些度量在高负载期间受到了压力,因此您可以基于这些创建自定义缩放规则。