为啥在 Asp.Net Core 中使用 Steeltoe.Discovery.Client 库会不断增加内存?

Posted

技术标签:

【中文标题】为啥在 Asp.Net Core 中使用 Steeltoe.Discovery.Client 库会不断增加内存?【英文标题】:Why using Steeltoe.Discovery.Client library in Asp.Net Core keeps increasing the memory?为什么在 Asp.Net Core 中使用 Steeltoe.Discovery.Client 库会不断增加内存? 【发布时间】:2020-08-02 05:21:09 【问题描述】:

我有一个使用 Steeltoe.Discovery.Client 2.2.0 库的简单 ASP.Net Core API 3.1(来自 VS 模板)项目。运行应用程序几天后,内存不断增加。我进行了一些调查,以了解为什么在不使用该应用程序的情况下内存会增加。

我发现每次调用 30 秒(HeartBeat askAsync,FetchRegistry Async)内存增加而不减少。

谁能帮我弄清楚为什么内存在每次 I/O 峰值(eureka 调用)时不断增加(约 1MB/分钟),而没有减少,以及如何在生产中使用它而不重新启动应用程序以释放内存?

谢谢!

【问题讨论】:

如果您不介意的话,会问一些小问题:使用率有多高?与 Eureka 的沟通是成功还是失败?在此服务器上注册了多少其他应用(实例)? 【参考方案1】:

在过去的版本中,自 2.2.0 以来,我们已经确定并解决了一些可能会影响您的问题。听起来可能与健康检查有关。您可以尝试使用最新的 2.4.4 版本,看看是否还有问题?如果没有,我们可以仔细查看您的配置并尝试重现。

谢谢。

【讨论】:

嗨,Jason,我刚刚用最新版本 2.4.4 进行了测试,这个问题似乎也存在于这个版本中。 我们看了看,我们认为它可能与注册表获取有关。您能否告诉我们您将“registryFetchIntervalSeconds”设置为什么?在我们深入挖掘时,您能否增加价值并看看这是否有帮助?

以上是关于为啥在 Asp.Net Core 中使用 Steeltoe.Discovery.Client 库会不断增加内存?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Asp.net Core 无法读取 Ajax 参数?

为啥 jQuery 验证函数在 ASP.NET MVC Core 应用程序中不起作用?

为啥我的 Asp.Net Core 日志中出现“不支持 POST 请求”?

为啥要在 ASP.Net Core 中获取多个 IMemoryCache 实例?

为啥 ASP.NET Core 密码验证规则不起作用?

C# ASP.NET Core 5.0 - 为啥在使用 [Authorization] 时甚至不调用该方法