IIS worker process(w3wp.exe ) 占用CPU 100% 的常見原因及解決辦法
[重要通告]如您遇疑難雜癥,本站支持知識付費業(yè)務,掃右邊二維碼加博主微信,可節(jié)省您寶貴時間哦!
昨天一個很久的朋友找我說他站出了問題,CPU啥的都快滿核了~
觀察一番,一直是進程w3wp.exe忽高忽低造成的,然后經過各種查看,想確定是哪個站的問題,畢竟站點挺多,
w3wp.exe忽高忽低解決辦法:
延伸閱讀:
對于IIS 管理員來說,經常會碰到 Web 服務器 CPU 占用 100% 的情況,以下是個人的日常工作總結和一些解決辦法,主要用來剖析 w3wp.exe(IIS ) 占用 CPU 100% 的一些原因 和解決方案,希望能對你有所幫助
w3wp.exe的解釋 : 全名,IIS Application Pool Process。 w3wp.exe是IIS工具的一部。w3wp.exe是在IIS(因特網信息服務器)與應用程序池相關聯(lián)的一個進程,如果你有多個應用程序池,就會有對應的多個w3wp.exe的進程實例運行。這個進程用來分配大量的系統(tǒng)資源。
引起 w3wp.exe(IIS ) Cpu 占用 100% 的常見原因如下:
1. Web 訪問量大,從而服務器壓力大而引起的
這個也是最常見的情況。如果 Web 訪問量大,特別是同時在線人數(shù)過多,處理的 Requests Current(當前請求數(shù))過高,就會同時對 IIS 和服務器造成較大的壓力。特別是 服務器需要不斷的運算,往客戶端發(fā)送生成后的頁面,這些都需要占用大量的CPU 資源,從而造成 Cpu 100%
2. 動態(tài)頁面(.aspx)的程序邏輯復雜程度
這個問題,對 w3wp.exe 的 CPU 占用 來說也是蠻嚴重的,可能在訪問量級比較小的情況下并沒有多少影響,但是在高并發(fā)的網站上面來說,特別是 Asp.Net 的 Requests Current 超過250 的時候,將會是 w3wp.exe 占用 CPU 的一個重要的因素。
我曾經碰到過這樣一個情況,兩個 web(A 和 B) 在兩臺 配置相當?shù)?服務器中部署,且兩個站點的訪問量都很大,訪問頁面都集中在兩個站點的兩個單獨頁面,且這兩個頁面 的 IIS 連接數(shù)都是 50個左右,但是頁面程序的復雜程度就錯了很多,A 站點中的頁面,只有幾個 簡單的 Repeater 綁定, 而 B 站點中的頁面,則有大量的綁定、字符串過濾替換、Repeater 嵌套綁定等等。這樣的情況,在 大流量、高并發(fā)的環(huán)境中,A 站點 在 IIS 連接數(shù) 達到3 W 多的時候,CPU 占用仍然是 50 % 左右,而 B 站點在 IIS 連接數(shù) 達到 7K 左右的時候,CPU 就 90% 多了,造成了 服務器的壓力很大,并且 IIS 遭到了堵塞。
3. 頁面程序中有死循環(huán)
如果Web 訪問量不大,但是 CPU 卻占用很高,那么頁面中的程序肯定有死循環(huán)或者性能比較嚴重的 程序語句
4. Http方式下載的站點
如果站點是HTTP形式下載站,也遇到過 w3wp.exe 占用 CPU 100% 的情況
5. 服務器資源不會自動釋放
有時,一個站點的流量在一個小時內陡增,結果操作系統(tǒng)分配了比較多的 CPU 資源,但是當流量下去后,w3wp.exe 占用的 CPU 并沒有及時釋放,仍然在保持在 90% 以上
6. 對 IIS 日志文件操作
比如此時分析 IIS 日志文件里面的數(shù)據(jù),把 IIS Log 日志導入到數(shù)據(jù)庫中等操作,也會造成此現(xiàn)象;
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!