当前位置:  开发笔记 > 后端 > 正文

基准测试ASP.NET并发请求效果不佳

如何解决《基准测试ASP.NET并发请求效果不佳》经验,为你挑选了0个好方法。

我有以下代码,我使用jMeter进行基准测试,并在我的localhost机器上每秒获得大约3000个请求(await故意无意地同步运行):

public async Task Get()
{
    var resp = new HttpResponseMessage(HttpStatusCode.OK);
    resp.Content = new StringContent(Thread.CurrentThread.ManagedThreadId.ToString(), Encoding.UTF8, "text/plain");
    return resp;
}

问题是,当我暂停请求一秒钟时,如下所示,由于某种原因,每个w3wp.exe进程的吞吐量降至每秒10个请求(同样await有意无意地同步运行):

public async Task Get()
    {
        Task.Delay(1000).Wait();
        var resp = new HttpResponseMessage(HttpStatusCode.OK);
        resp.Content = new StringContent(Thread.CurrentThread.ManagedThreadId.ToString(), Encoding.UTF8, "text/plain");
        return resp;
    }

即使我使用await它也没有区别,每秒10个请求根本没有改进:

public async Task Get()
{
    await Task.Delay(1000);
    var resp = new HttpResponseMessage(HttpStatusCode.OK);
    resp.Content = new StringContent(Thread.CurrentThread.ManagedThreadId.ToString(), Encoding.UTF8, "text/plain");
    return resp;
}

我尝试了所有配置设置,没有任何改变:`

web.config中

  
    
      
    
  

aspnet.config

  
    
  

machine.config中

 

配置为x86和x64

我有32个内存和4个物理内核,Windows 10.

当每秒调整10个请求时,CPU不会超过10%的负载.

上面的代码使用WEB API,但我当然使用HTTP Handler重现相同的结果.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有