解決 IIS Worker Process 內存占用達到99%的問題


昨天半夜,接到客戶緊急異常,許多webservice接口調用數據返回異常。於是趕緊遠程查看服務器,發現服務器運行很卡,且一個IIS Worker Process進程占用內存達99%,猜測可能是接口調用突然頻繁而IIS占用內存沒有及時回收導致的。解決方式,首先手動結束這個進程,重啟接口,程序恢復運行。但此時IIS占用的內存依然會逐步增加,這個過程需要一段時間,在這段時間里要合理設置IIS應用程序內存回收機制。

確定了是IIS內存回收機制設置不合理,在忽略程序設計邏輯本身問題的前提下,通過IIS應用程序指定內存回收機制。

在應用池中選擇需要處理的項右鍵→高級設置中,我們可以看到,默認IIS設置的固定內存回收時間是1740分鍾,也就是29個小時,這對於24小時運行的程序來說,作用不大。緊接着可以看到專用內存限制設置項,默認是0,也就是沒有限制。於是把它修改為1048576,表示當內存達到1G的時候,自動啟動內存釋放機制。這個釋放過程原來運行中的程序會繼續執行,新的調用會重新創建一個新的進程來運行。

修改后持續觀察一天,效果不錯!


本文為原創文章,轉載請注明出處!歡迎關注任前程博客 https://renqiancheng.com/,第一時間看后續精彩文章。


免責聲明!

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



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