w3wp.exe進程占用內(nèi)存過高解決方法
w3wp.exe是在IIS(因特網(wǎng)信息服務(wù)器)與應(yīng)用程序池相關(guān)聯(lián)的一個進程,如果你有多個應(yīng)用程序池,就會有對應(yīng)的多個w3wp.exe的進程實例運行。這個進程用來分配大量的系統(tǒng)資
今天研究了一下,可以做以下配置:
1、在IIS中對每個網(wǎng)站進行單獨的應(yīng)用程序池配置。即互相之間不影響。
2、設(shè)置應(yīng)用程序池的回收時間,默認為1720小時,可以根據(jù)情況修改。同時,設(shè)置同時運行的w3wp進程數(shù)目為1。再設(shè)置當內(nèi)存或者cpu占用超過多少,就自動回收內(nèi)存
一般來說,這樣就可以解決了。但仍然會出現(xiàn)個別網(wǎng)站因為程序問題,不能正確釋放。
那么,怎么樣才能找到是哪一個網(wǎng)站的?
1、在任務(wù)管理器中增加顯示pid字段。就可以看到占用內(nèi)存或者cpu最高的進程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進程CPU使用率的方法保證網(wǎng)站可以將就著工作:
在IIS6下,經(jīng)常出現(xiàn)w3wp.exe的內(nèi)存及CPU占用不能及時釋放,從而導(dǎo)致服務(wù)器響應(yīng)速度很慢。
解決CPU占用過多:
1、在IIS中對每個網(wǎng)站進行單獨的應(yīng)用程序池配置。即互相之間不影響。
2、設(shè)置應(yīng)用程序池的CPU監(jiān)視,不超過25%(服務(wù)器為4CPU),每分鐘刷新,超過限制時關(guān)閉。
根據(jù)w3wp取得是哪一個應(yīng)用程序池:
1、在任務(wù)管理器中增加顯示pid字段。就可以看到占用內(nèi)存或者cpu最高的進程pid
2、在命令提示符下運行iisapp -a。注意,第一次運行,會提示沒有js支持,點擊確定。然后再次運行就可以了。這樣就可以看到pid對應(yīng)的應(yīng)用程序池。(iisapp實際上是存放在 C:windowssystem32目錄下的一個VBS腳本,全名為iisapp.vbs,如果你和我一樣,也禁止了Vbs默認關(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)站進行單獨的應(yīng)用程序池配置。即互相之間不影響。
2、設(shè)置應(yīng)用程序池的回收時間,默認為1720小時,可以根據(jù)情況修改。再設(shè)置當內(nèi)存占用超過多少(如500M),就自動回收內(nèi)存。
我的設(shè)置如下:
首先是對CPU的限制:在啟用cpu監(jiān)視后,我設(shè)置該應(yīng)用程序池最大的cpu使用率為50%。設(shè)置刷新cpu時間為1分鐘,設(shè)置操作為“關(guā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就會強行關(guān)閉它一個刷新CPU時間。在這個停止的時間內(nèi),網(wǎng)站無法訪問,提示“Service Unavaliable”。
關(guān)閉時間和啟動時間間隔設(shè)置:設(shè)短一些比如10秒,這樣當您的網(wǎng)站程序大量占用系統(tǒng)資源時IIS自動快速回收進程并且快速啟動進程,您的網(wǎng)站暫時還可以將就著工作。
對內(nèi)存的限制及進程回收時間的設(shè)置:我設(shè)置為內(nèi)存占用超過800M就自動回收內(nèi)存,虛擬內(nèi)存沒有做限制。進程回收時間我保持默認沒有修改。各位可以根據(jù)自己的情況設(shè)置更短的時間。對應(yīng)用程序池最大虛擬內(nèi)存也可以在此進行設(shè)置,超過了設(shè)置的最大虛擬內(nèi)存,該池會就被回收。
相關(guān)文章
服務(wù)器授權(quán)模式每服務(wù)器同時連接數(shù)與每設(shè)備或每用戶的區(qū)別小結(jié)
服務(wù)器授權(quán)模式每服務(wù)器同時連接數(shù)與每設(shè)備或每用戶的區(qū)別小結(jié),需要的朋友可以參考下。2011-04-04Windows Server 修改遠程桌面端口的實現(xiàn)
本文主要介紹了Windows Server 修改遠程桌面端口的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-06-06IIS HTTP 錯誤 404.17 - Not Found 解決方法
這篇文章主要介紹了IIS出現(xiàn)Errore HTTP 404.2 - Not Found" IIS 7.5 請求的內(nèi)容似乎是腳本,因而將無法由靜態(tài)文件處理程序來處理問題的解決方法,需要的朋友可以參考下2014-05-05IIS服務(wù)器下做301永久重定向設(shè)置方法[圖解]
以前也沒怎么關(guān)注301重定向,第一因為沒有網(wǎng)站要重定向,第二對于不帶www的域名我都是用的轉(zhuǎn)發(fā)到帶www的域名。2011-10-10Win2003 Server 安全的個人Web服務(wù)器
Win2003 Server的安全性較之Win2K確實有了很大的提高,但是用Win2003 Server作為服務(wù)器是否就真的安全了?如何才能打造一個安全的個人Web服務(wù)器。2009-10-10基于Win2008 R2的WSFC實現(xiàn) SQL Server 2012高可用性組(AlwaysOn Group)
SQL Server 2012高可用性組在實現(xiàn)過程中較之早起的SQL Server故障轉(zhuǎn)移群集來講,不依賴特別提供共享存儲磁盤陣列,每個節(jié)點獨立存儲一份數(shù)據(jù)庫的副本2013-06-06iis Win32狀態(tài)數(shù)值(sc-win32-status)說明
在iis的日志里面,有一項是sc-win32-status,這個的中文名字就是Win32狀態(tài),那么,該狀態(tài)不同的數(shù)值代表什么呢?2008-07-07win2003 vps IIS6中添加站點并綁定域名的配置方法
這篇文章主要介紹了windows2003 VPS或服務(wù)器中 IIS6中添加站點并綁定域名設(shè)置教程,需要的朋友可以參考下2017-04-04如何解決windows系統(tǒng)和linux系統(tǒng)中端口被占用的問題
這篇文章主要介紹了如何解決windows系統(tǒng)和linux系統(tǒng)中端口被占用的問題的相關(guān)資料,需要的朋友可以參考下2015-10-10Windows Server 2016 服務(wù)器配置指南之IIS10安裝方法
這篇文章主要介紹了Windows Server 2016 服務(wù)器配置指南之IIS10安裝方法,需要的朋友可以參考下2017-08-08