Performance Web Api Owin托管-吞吐量下降

Performance Web Api Owin托管-吞吐量下降,performance,asp.net-web-api,self-hosting,Performance,Asp.net Web Api,Self Hosting,我们最近将IIS托管的api复制到一个控制台应用程序中(以Owin+TopShelf作为服务托管),并使用JMeter对两个托管选项进行性能评测 我们在API上抛出了18个线程,从IIS托管与控制台托管得到了不同的结果,具体如下: 通过IIS的响应时间较慢。这并不奇怪,因为IIS中的管道更复杂 通过IIS的吞吐量是一致的,即我们没有看到吞吐量的显著增加/减少(我们实现了每分钟5500个请求/响应) 当托管在控制台应用程序中时,吞吐量开始时非常高(每分钟20000个),但在10分钟内迅速下降到大约

我们最近将IIS托管的api复制到一个控制台应用程序中(以Owin+TopShelf作为服务托管),并使用JMeter对两个托管选项进行性能评测

我们在API上抛出了18个线程,从IIS托管与控制台托管得到了不同的结果,具体如下:

通过IIS的响应时间较慢。这并不奇怪,因为IIS中的管道更复杂

通过IIS的吞吐量是一致的,即我们没有看到吞吐量的显著增加/减少(我们实现了每分钟5500个请求/响应)

当托管在控制台应用程序中时,吞吐量开始时非常高(每分钟20000个),但在10分钟内迅速下降到大约4500个

我们试图确定作为控制台托管时吞吐量下降的原因。为什么我们从每分钟20000个请求开始(大概是根据一分钟内没有运行的初始响应时间计算),但降到4500个

其他值得注意的是,CPU不是一个问题。它在启动时会有波动,但会稳定在30%以下,4GB ram机器上的平均内存为1.34GB

为什么IIS中的吞吐量可能是稳定的,为什么通过控制台应用程序(给定稳定的CPU和内存)使用MS Owin托管时会降低吞吐量

顺便说一句,我们正试图分离可能导致降级的代码片段


如果您对此有任何想法,我们将不胜感激

顺便说一句,我不知道这在我们的代码、我们的期望以及JMeter建立/预测吞吐量的方式中是否是一个问题。如果有其他推荐的工具用于改变输入和测试吞吐量/响应时间,请推荐。您能解决这个问题吗?