添加Azure Webrole实例不会影响MVC4 Web服务吞吐量

时间:2013-05-24 15:01:22

标签: .net asp.net-mvc-4 azure azure-web-roles

作为Azure webrole的一部分,我有一个非常简单的MVC4后期操作:

[HttpPost]
    public ActionResult Index(Request request)
    {
        return new JsonResult() 
        { 
            Data = "OK", 
            JsonRequestBehavior = JsonRequestBehavior.AllowGet 
        };
    }
  1. 我将webrole部署到Azure。
  2. 我使用了基准测试(ab.exe),并且看到25个并发请求的处理时间不超过1秒。
  3. 现在我想通过添加一个新的webrole实例来扩展,所以我期待+25并发用户也会对1秒的延迟感到满意。
  4. 我再次运行becnhmark,结果与1个webrole实例相同。
  5. P.S我有免费的Azure订阅。 Webroles的VM大小很小。

    为什么当我添加新的webrole实例时,webservice容量没有增加?我错过了一些配置或者什么?

1 个答案:

答案 0 :(得分:3)

您希望为25个并发用户更改什么?

扩展更多实例的想法是处理更多并发用户,而不是更快地处理少量用户......

我建议你测试边缘情况 - 说1000并发用户,找到单个实例的饱和点。假设单个实例可以安全地处理546并发用户。现在增加实例数,用100并发用户预热测试。增加到1000个并发用户。您的服务现在可以处理1000个并发用户,而不仅仅是546 ...这是添加更多实例的想法......

所有想象中的数字。

<强>更新

有趣的是,你说你使用:

  

ab -n 25 -c 25 -p json.file -T“application / json; charset = utf-8”   xxxxx.cloudapp.net

现在来自文档:

  

-c concurrency一次执行多个请求的数量。默认是一次一个请求。

     

-n requests为基准测试会话执行的请求数。默认情况下,通常只执行一个请求   导致非代表性的基准测试结果。

如果您只执行25个连续请求,您认为结果是什么?我建议您使用以下参数:

  

ab -n 150 -c 1000 -p json.file -T“application / json; charset = utf-8”   xxxxx.cloudapp.net

再次检查结果!