最大并发HttpWebRequests数删除限制

时间:2012-12-11 01:45:21

标签: c# .net multithreading asynchronous httpwebrequest

我们正在尝试使用HttpWebRequest提交大量的并发Web请求,以便对服务器进行压力测试。

对于此示例,正在测试的Web服务方法只是暂停30秒,然后返回允许队列深度和同时请求测试。

客户端日志显示200个呼叫在~1秒内并行成功排队,使用多次调用:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
request.BeginGetResponse();

Fiddler显示第一个~80被同时发送到服务器,然后在任何初始响应返回之前,Fiddler显示剩下的~120个请求以大约1 /秒的速度添加。

根据here的建议,有效限制从大约10增加到大约80.我希望在不诉诸多台机器/流程的情况下移除下一道屏障。有什么想法吗?

// Please excuse the blind setting of these values to find the other problem.
// These were set much higher but did not help
ThreadPool.SetMinThreads(30, 15);
ThreadPool.SetMaxThreads(30, 15);
System.Net.ServicePointManager.DefaultConnectionLimit = 1000;

和App.Config

   <system.net>
    <connectionManagement>
      <clear/>   
    </connectionManagement>
   </system.net>

另一点是,当在简单延迟测试之前执行并完成大量请求时,延迟测试能够同时达到80左右。从“冷”开始通常将其限制在大约10左右。

0 个答案:

没有答案