文章出處

今天下午有段時間訪問園子感覺不如以前那么快的流暢,上Web服務器一看,果然,負載均衡中的1臺云服務器CPU跑高。

博客園Web服務器CPU跑高

上圖中紅色曲線表示的是CPU占用率。正常情況下,CPU占用率一般在40%以下。

這臺云服務器是2臺主力Web服務器(承擔了80%以上的訪問量)中的1臺,8核CPU/8G內存,用的是阿里云的臨時磁盤云服務器,之前一直表現出色,今天怎么突然CPU跑高呢?難道臨時磁盤云服務器的CPU也有問題?向阿里云提交工單,得到的反饋是云服務器所在的物理機表現良好。

為了盡快解決問題,我們在負載均衡中新加了1臺云服務器,將這臺云服務器撤下,然后奇怪現象出現了:

在沒有任何訪問請求的情況下,CPU占用竟然一直在50%左右。

打開Windows任務管理器一看,50%的CPU一直被IIS進程占用著,并且IIS進程占用了5G以上的內存。

我們判斷可能是GC回收引發的CPU消耗,理由很簡單——在沒有任何請求的情況下,依然在拚命工作的唯有GC(Garbage Collection)。于是我們立即回收IIS應用程序池(GC在回收,我們回收GC),進行了2次回收操作,才回收掉。回收之后,CPU占用立馬下降。

然后把這臺云服務器重新投入戰斗,立即恢復為之前正常的戰斗狀態。

Web服務器恢復了戰斗狀態,而我們則要更加努力的戰斗——優化代碼,減輕GC的壓力。


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()