解決Hangfire 導致服務器內存飆漲


最近因為項目需要調度作業服務,之前看張隊推薦過一篇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不熟悉,望哪位仁兄知道告知我一下,謝謝!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM