最近因為專案需要調度作業服務,之前看張隊推薦過一篇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不熟悉,望哪位仁兄知道告知我一下,謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/105849.html
標籤:.NET Core
