我正在使用ASP.net(.net Core 2.0)应用程序,但我发现某些查询非常慢。
这是一个API,入口点仅对mongoDB(聚合)进行查询并返回结果。
当我运行10个请求时,其中一个请求将非常慢10秒,而其他请求将在200毫秒内进行。
在开始时,我怀疑是Mongo的问题,但是当我直接对mongo数据库执行完全相同的查询时,我没有重现问题。
在应用程序日志中,时间增量出现在这两行之间:
2018-09-20T09:07:02.253335192Z Connection id "0HLGUR04B579R" started.
2018-09-20T09:07:10.761709905Z info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
这就是为什么我怀疑Kestrel的原因,但我真的不知道该怎么做才能改善性能并解决这个问题。
我已经将.net核心版本升级到2.1,但是我仍然面临着同样的问题。
如果有人有主意...
答案 0 :(得分:0)
要解决您的问题,您有两种选择:
第一:
在部署应用后尝试执行一些热身查询。
第二:
如果您有大量的RAM(现在更便宜的是云中的内存),则可能想尝试使用touch命令,该命令使您能够将数据从磁盘预加载到内存中。 / p>