高容量Web API吞吐量

时间:2016-03-30 10:47:13

标签: c# asp.net performance azure asp.net-web-api

在下面的示例中,假设' Composition API'正在以每秒100到500个请求的速率调用。对于每个传入的请求,它必须向3个服务发出请求以为客户端撰写响应。

  • ' Composition API'组件是Azure云服务
  • 所有API方法在堆栈中都是异步的
  • 可能会突然爆发请求,传入速率可在60秒内从100 rps变为500 rps。
  • 它依赖的服务是所有基于HTTPS的REST API
  • 它所依赖的所有服务都有一个SLA在1秒内响应。

Simple API Architecture

请忽略此问题的Azure扩展和缓存,这纯粹是网络吞吐量练习的最佳做法。

组合API组件将产生大量的出站HTTP请求,并且需要快速响应请求量的变化。

command script基于Microsoft recommendations(我知道它是2004年的一篇文章!),可让您在角色启动时调整连接和线程设置

  • ServicePointManager.DefaultConnectionLimit
  • ThreadPool - WorkerThreads \ IOThreads

问: ServicePointManager.DefaultConnectionLimit自.Net 4.5以来一直是Int32.MaxValue - 它是否仍然遵循(12 * #CPU)公式?

问:为了实现最大并发性,您会设置哪些其他设置,而不会因请求排队而超时? e.g。

ServicePointManager.UseNagleAlgorithm = false;

ServicePointManager.Expect100Continue = false;

我已经看到了一些不同的方法 - 有兴趣知道是否有其他人拥有高流量经验以及您为解决上述问题而使用的设置。

0 个答案:

没有答案