【发布时间】:2018-11-29 08:28:28
【问题描述】:
我注意到一段时间后,我的 ASP.NET Core Web API 服务似乎经历了与您重新启动它们时相同的初始化过程,即初始请求很慢,但后续请求很快。
是否有一种常见的技术可以让控制器保持温暖,这样就不会发生这种情况?作为参考,我没有使用 IIS(据我所知),这些服务使用 Microsoft 的官方 .NET Core docker 映像(不是基于 Alpine)在 Docker 中运行。
我还应该指出,这些服务中的控制器在启动时通过 /ready 端点进行预热,Kubernetes 调用该端点作为准备检查。问题是这似乎并没有持续多久。
【问题讨论】:
-
慢有多慢?快有多快?快变慢需要等多久?您是在单个客户端上还是在多个客户端上看到它?可能与 DNS 有关吗?
-
我不确定是否使用 microsoft docker,但如果您使用 IIS,可以参考此链接 stackoverflow.com/questions/21150237/…。也许您可以在您的应用程序中找到一些类似的设置
-
如果你能提供一个minimal reproducible example 这样我们就可以看到有问题的控制器及其依赖关系了。
-
@mjwills 还没有,但是我仔细检查了 Npgsql 文档并注意到默认情况下它会在 5 分钟后关闭空闲连接,所以我认为这可能是根本原因。需要配置文件才能确认。
-
这不只是因为原生 C# JIT 编译器吗?
标签: c# .net asp.net-web-api