五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > IIS中w3wp.exe進(jìn)程占用內(nèi)存過高或占用100%常見原因及解決辦法

IIS中w3wp.exe進(jìn)程占用內(nèi)存過高或占用100%常見原因及解決辦法

文章來源:365jz.com     點擊數(shù):6077    更新時間:2017-08-19 09:49   參與評論

今天研究了一下,可以做以下配置:

1、在IIS中對每個網(wǎng)站進(jìn)行單獨的應(yīng)用程序池配置。即互相之間不影響。

2、設(shè)置應(yīng)用程序池的回收時間,默認(rèn)為1720小時,可以根據(jù)情況修改。同時,設(shè)置同時運行的w3wp進(jìn)程數(shù)目為1。再設(shè)置當(dāng)內(nèi)存或者cpu占用超過多少,就自動回收內(nèi)存

一般來說,這樣就可以解決了。但仍然會出現(xiàn)個別網(wǎng)站因為程序問題,不能正確釋放。

那么,怎么樣才能找到是哪一個網(wǎng)站的?

1、在任務(wù)管理器中增加顯示pid字段。就可以看到占用內(nèi)存或者cpu最高的進(jìn)程pid

2、在命令提示符下運行iisapp -a。注意,第一次運行,會提示沒有js支持,點擊確定。然后再次運行就可以了。這樣就可以看到pid對應(yīng)的應(yīng)用程序池

3、到iis中察看該應(yīng)用程序池對應(yīng)的網(wǎng)站,就ok了。

最近公司服務(wù)器總出現(xiàn)CPU100%占用情況,服務(wù)器配置為雙核Xeon3.0×2,2G ECC內(nèi)存。

發(fā)現(xiàn)是w3wp.exe長時間占用大量CPU.出現(xiàn)這種情況應(yīng)該是網(wǎng)站程序存在死循環(huán)等問題所致。

在找到問題以前可以暫時采取限制w3wp進(jìn)程CPU使用率的方法保證網(wǎng)站可以將就著工作:

在IIS6下,經(jīng)常出現(xiàn)w3wp.exe的內(nèi)存及CPU占用不能及時釋放,從而導(dǎo)致服務(wù)器響應(yīng)速度很慢。

解決CPU占用過多:

1、在IIS中對每個網(wǎng)站進(jìn)行單獨的應(yīng)用程序池配置。即互相之間不影響。

2、設(shè)置應(yīng)用程序池的CPU監(jiān)視,不超過25%(服務(wù)器為4CPU),每分鐘刷新,超過限制時關(guān)閉。

根據(jù)w3wp取得是哪一個應(yīng)用程序池:

1、在任務(wù)管理器中增加顯示pid字段。就可以看到占用內(nèi)存或者cpu最高的進(jìn)程pid

2、在命令提示符下運行iisapp -a。注意,第一次運行,會提示沒有js支持,點擊確定。然后再次運行就可以了。這樣就可以看到pid對應(yīng)的應(yīng)用程序池。(iisapp實際上是存放在 C:windowssystem32目錄下的一個VBS腳本,全名為iisapp.vbs,如果你和我一樣,也禁止了Vbs默認(rèn)關(guān)聯(lián)程序,那么就需要手動到該目錄,先擇打開方式,然后選“Microsoft (r) Windows Based Script Host”來執(zhí)行,就可以得到PID與應(yīng)用程序池的對應(yīng)關(guān)系。)

3、到iis中察看該應(yīng)用程序池對應(yīng)的網(wǎng)站,就ok了,做出上面的內(nèi)存或CPU方面的限制,或檢查程序有無死循環(huán)之類的問題。

解決內(nèi)存占用過多,可以做以下配置:

1、在IIS中對每個網(wǎng)站進(jìn)行單獨的應(yīng)用程序池配置。即互相之間不影響。

2、設(shè)置應(yīng)用程序池的回收時間,默認(rèn)為1720小時,可以根據(jù)情況修改。再設(shè)置當(dāng)內(nèi)存占用超過多少(如500M),就自動回收內(nèi)存。

我的設(shè)置如下:

首先是對CPU的限制:在啟用cpu監(jiān)視后,我設(shè)置該應(yīng)用程序池最大的cpu使用率為50%。設(shè)置刷新cpu時間為1分鐘,設(shè)置操作為“關(guān)閉”。最大工作進(jìn)程數(shù)設(shè)置為1。這個意思是,IIS刷新檢測該獨立池的CPU使用情況時間為1分鐘,如果超過設(shè)置的cpu限制50%,就會發(fā)出關(guān)閉池的指令,要求池在指定的時間內(nèi)關(guān)閉。如果池成功在這個時間內(nèi)關(guān)閉,IIS會重啟動一個新池,此段時間很短,一般不會有什么感覺,池就重新開啟了,對于訪問網(wǎng)站的人基本是不會有感覺的。但如果池沒有在指定時間內(nèi)關(guān)閉,IIS就會強(qiáng)行關(guān)閉它一個刷新CPU時間。在這個停止的時間內(nèi),網(wǎng)站無法訪問,提示“Service Unavaliable”。

關(guān)閉時間和啟動時間間隔設(shè)置:設(shè)短一些比如10秒,這樣當(dāng)您的網(wǎng)站程序大量占用系統(tǒng)資源時IIS自動快速回收進(jìn)程并且快速啟動進(jìn)程,您的網(wǎng)站暫時還可以將就著工作。

對內(nèi)存的限制及進(jìn)程回收時間的設(shè)置:我設(shè)置為內(nèi)存占用超過800M就自動回收內(nèi)存,虛擬內(nèi)存沒有做限制。進(jìn)程回收時間我保持默認(rèn)沒有修改。各位可以根據(jù)自己的情況設(shè)置更短的時間。對應(yīng)用程序池最大虛擬內(nèi)存也可以在此進(jìn)行設(shè)置,超過了設(shè)置的最大虛擬內(nèi)存,該池會就被回收。



對于IIS 管理員來說,經(jīng)常會碰到 Web 服務(wù)器 CPU 占用 100% 的情況,以下是個人的日常工作總結(jié)和一些解決辦法,主要用來剖析 w3wp.exe(IIS )  占用 CPU 100% 的一些原因 和解決方案,希望能對你有所幫助
w3wp.exe的解釋 : 全名,IIS Application Pool Process。 w3wp.exe是IIS工具的一部。w3wp.exe是在IIS(因特網(wǎng)信息服務(wù)器)與應(yīng)用程序池相關(guān)聯(lián)的一個進(jìn)程,如果你有多個應(yīng)用程序池,就會有對應(yīng)的多個w3wp.exe的進(jìn)程實例運行。這個進(jìn)程用來分配大量的系統(tǒng)資源。

w3wp.exe是在IIS(因特網(wǎng)信息服務(wù)器)與應(yīng)用程序池相關(guān)聯(lián)的一個進(jìn)程,如果你有多個應(yīng)用程序池,就會有對應(yīng)的多個w3wp.exe的進(jìn)程實例運行。這個進(jìn)程用來分配大量的系統(tǒng)資源
引起 w3wp.exe(IIS ) Cpu 占用 100% 的常見原因如下:
1. Web 訪問量大,從而服務(wù)器壓力大而引起的
這個也是最常見的情況。如果 Web 訪問量大,特別是同時在線人數(shù)過多,處理的 Requests Current(當(dāng)前請求數(shù))過高,就會同時對 IIS 和服務(wù)器造成較大的壓力。特別是 服務(wù)器需要不斷的運算,往客戶端發(fā)送生成后的頁面,這些都需要占用大量的CPU 資源,從而造成  Cpu 100%
2. 動態(tài)頁面(.aspx)的程序邏輯復(fù)雜程度
這個問題,對 w3wp.exe 的 CPU 占用 來說也是蠻嚴(yán)重的,可能在訪問量級比較小的情況下并沒有多少影響,但是在高并發(fā)的網(wǎng)站上面來說,特別是 Asp.NET 的 Requests Current 超過250 的時候,將會是 w3wp.exe 占用 CPU 的一個重要的因素。
我曾經(jīng)碰到過這樣一個情況,兩個 web(A 和 B) 在兩臺 配置相當(dāng)?shù)?服務(wù)器中部署,且兩個站點的訪問量都很大,訪問頁面都集中在兩個站點的兩個單獨頁面,且這兩個頁面 的 IIS 連接數(shù)都是 50個左右,但是頁面程序的復(fù)雜程度就錯了很多,A 站點中的頁面,只有幾個 簡單的 Repeater 綁定, 而 B 站點中的頁面,則有大量的綁定、字符串過濾替換、Repeater 嵌套綁定等等。這樣的情況,在 大流量、高并發(fā)的環(huán)境中,A 站點 在 IIS 連接數(shù) 達(dá)到3 W 多的時候,CPU 占用仍然是 50 % 左右,而 B 站點在 IIS 連接數(shù) 達(dá)到 7K 左右的時候,CPU 就 90% 多了,造成了 服務(wù)器的壓力很大,并且 IIS 遭到了堵塞。
3. 頁面程序中有死循環(huán)
如果Web 訪問量不大,但是 CPU 卻占用很高,那么頁面中的程序肯定有死循環(huán)或者性能比較嚴(yán)重的 程序語句
4. Http方式下載的站點
如果站點是HTTP形式下載站,也遇到過 w3wp.exe 占用 CPU 100% 的情況
5. 服務(wù)器資源不會自動釋放
有時,一個站點的流量在一個小時內(nèi)陡增,結(jié)果操作系統(tǒng)分配了比較多的 CPU 資源,但是當(dāng)流量下去后,w3wp.exe 占用的 CPU  并沒有及時釋放,仍然在保持在 90% 以上
6. 對 IIS 日志文件操作
比如此時分析 IIS 日志文件里面的數(shù)據(jù),把 IIS Log 日志導(dǎo)入到數(shù)據(jù)庫中等操作,也會造成此現(xiàn)象
解決辦法:
1. 快速定位到出問題的站點
利用iisapp -a 命令,快速的定位到出問題的站點。當(dāng)然如果當(dāng)前服務(wù)器只跑了一個web站點,那么此步驟可以跳過
在 cmd 中 輸入 iisapp - a ,會出現(xiàn)下圖中的信息:

當(dāng)然,這個要求你沒個站點,都要有獨立的應(yīng)用程序池與之對應(yīng),應(yīng)用程序池的名稱,最好就是站點的名稱,如下圖:

關(guān)于 IIS 的應(yīng)用程序池的配置,這里就不說了,不懂的可以search  下
之后,再打開任務(wù)管理器,如下圖:

觀察進(jìn)程為 w3wp.exe 的,查看那個CPU 占用的高,再利用其 PID 于 iisapp 中列出的結(jié)果對比,就能輕松的找出是那個站點占用的CPU過高了
2. 重啟 IIS 和 應(yīng)用程序池

此步是緊急處理,一般都是治標(biāo)不治本的步驟。如果你的站點搭建的有 負(fù)載均衡(負(fù)載均衡、NLB),那么請在 負(fù)載均衡(負(fù)載均衡、NLB)把當(dāng)前服務(wù)器下了,然后重啟。如果你沒有 負(fù)載均衡(負(fù)載均衡、NLB),而且你的站點又是在線的,那么,就悲劇10多秒吧,短暫的不能訪問吧
3. 給頁面加上頁面級別緩存

如果Web 是 Asp.net 程序,那么請一定要 <%@ OutputCache Duration="10" VaryByParam="none"%>。但是有好多人都沒有用好 OutputCache ,導(dǎo)致經(jīng)常出現(xiàn)下載頁面的問題,所以都放棄了使用,這里有 OutputCache 導(dǎo)致頁面下載的解決辦法 。
OutputCache 非常有用,好處有三:直接從內(nèi)存讀頁面,頁面響應(yīng)速度更快,用戶體驗更好;大大的降低了服務(wù)器的壓力,特別是對于高并發(fā)的網(wǎng)站,特別是 CPU 的壓力;減少了 DB 的強(qiáng)求,降低 DB(數(shù)據(jù)庫)的壓力。
4. 檢查頁面邏輯

如果WEB 流量很低,但是還有 w3wp.exe(IIS ) CPU 占用 100% 左右的情況,那么就檢查頁面的代碼邏輯吧,很有可能是死循環(huán)或大量的運算導(dǎo)致。
 

如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答??! 點擊進(jìn)入論壇

發(fā)表評論 (6077人查看0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號