最近因为项目需要调度作业服务,之前看张队推荐过一篇https://www.cnblogs.com/yudongdong/p/10942028.html
故直接拿过来实操,发现很好用,简单、方便 执行周期webapi任务,nice
发布到生产环境,顺便看看服务器资源情况,我艹,内存,每s涨1M,涨到500m,关闭host服务,惹不起,什么原因???
1、本地调试、发布运行,内存正常
2、部署到本地测试服务器(win2016 core 2.2.7) 内存正常
3、发给我朋友的电脑测试 内存正常 稳定在130M左右
通过qq联系到原作者,让我dump给他分析,看看是不是内存泄露
无内存泄露!
注释掉nlog、他的hangfire.httpjob 组件,再次发布,内存仍然异常。
难道是服务器core 版本问题,安装最新2.2.7, 我靠,要重启服务器,生产服务器,放弃!
最后 作者提醒我,是可能没GC到的原因。
故搜到两篇文章:
https://www.cnblogs.com/maxzhang1985/p/7836088.html
https://www.cnblogs.com/smark/p/9899657.html
忽然想到服务器是2个cpu,40逻辑处理器,果断修改配置:
再次启动,一个健康检查api作业(直接return ok),每15s执行一次,内存保持在35M左右:
问题阶段性的解决了。
疑惑:
1、同一服务器上的另一个.net core api 内存不涨(间隔5s被请求一次)
2、猜想是服务器os win2012r2 太古老的原因
遗留问题:
本地测试 /job-read能正常访问, 部署到服务器外网无法访问,服务器本机能访问 难道job与 job-read 走不通的端口?被防火墙掉呢?
本人对hangfire不熟悉,望哪位仁兄知道告知我一下,谢谢!