欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

解决Hangfire 导致服务器内存飙涨

程序员文章站 2023-10-28 22:24:34
最近因为项目需要调度作业服务,之前看张队推荐过一篇https://www.cnblogs.com/yudongdong/p/10942028.html 故直接拿过来实操,发现很好用,简单、方便 执行周期webapi任务,nice 发布到生产环境,顺便看看服务器资源情况,我艹,内存,每s涨1M,涨到5 ......

最近因为项目需要调度作业服务,之前看张队推荐过一篇

故直接拿过来实操,发现很好用,简单、方便  执行周期webapi任务,nice

发布到生产环境,顺便看看服务器资源情况,我艹,内存,每s涨1m,涨到500m,关闭host服务,惹不起,什么原因???

1、本地调试、发布运行,内存正常

2、部署到本地测试服务器(win2016 core 2.2.7) 内存正常

3、发给我朋友的电脑测试  内存正常 稳定在130m左右

通过qq联系到原作者,让我dump给他分析,看看是不是内存泄露

解决Hangfire 导致服务器内存飙涨

 

 无内存泄露!

 

注释掉nlog、他的hangfire.httpjob 组件,再次发布,内存仍然异常。

 

难道是服务器core 版本问题,安装最新2.2.7, 我靠,要重启服务器,生产服务器,放弃!

 

最后 作者提醒我,是可能没gc到的原因。

 

故搜到两篇文章:

 

忽然想到服务器是2个cpu,40逻辑处理器,果断修改配置:

解决Hangfire 导致服务器内存飙涨

 

 

再次启动,一个健康检查api作业(直接return ok),每15s执行一次,内存保持在35m左右:

解决Hangfire 导致服务器内存飙涨

 

 

 问题阶段性的解决了。

 

疑惑:

1、同一服务器上的另一个.net core api  内存不涨(间隔5s被请求一次)

2、猜想是服务器os  win2012r2   太古老的原因

 

遗留问题:

本地测试 /job-read能正常访问, 部署到服务器外网无法访问,服务器本机能访问  难道job与 job-read 走不通的端口?被防火墙掉呢?

本人对hangfire不熟悉,望哪位仁兄知道告知我一下,谢谢!