核心提示:通過iisapp命令查找pid解決IIS的CPU占用率過高問題,我們先來看看iisapp的一些參數“iisapp -a pid”,可以查出對應的域名...
我們先來看看iisapp的一些參數
iisapp -a pid
可以查出對應的域名
反之 iisapp -p domain 查pid的語法
iisapp [a/
AppPoolName | /p
AppPoolID]
參數
/a AppPoolName
指定特定應用程序池的名稱。(可選項)
/p AppPoolID
按 ID 號指定應用程序池。(可選項)
注釋
如果未指定應用程序池名或 ID,則 iisapp 列出所有運行應用程序。
僅當使用 /s 時,
才可使用 /u 和 /p 命令行選項。必須同時使用 /p 和 /u 才能提供用戶密碼。
Iisext.vbs 執行 IIS 管理器中可用的相同操作。可使用任何一種工具管理 IIS 網站。
發出命令的計算機必須正在運行 Windows XP 或 Windows Server 2003 操作系統。用戶必須是命令所影響的計算機上的 Administrators 組成員。
命令所影響的計算機必須是運行帶有 Internet 信息服務 (IIS) 6.0 的 Windows Server 2003 的服務器。
說明一下:w3wp.exe為IIS裡面的應用程序池進程,有幾個進程就會有幾個w3wp.exe,會發現某個w3wp.exe進程CPU和內存都高得可怕。
好,那我們來看看具體實踐中該如何解決首先是windows2003
首先打開windows任務管理器–點擊查看—選擇列–把PID給鉤上,就可以在進程裡面看到PID的選項了。
點擊運行–輸入CMD–輸入iisapp -a—很奇怪,這裡顯示PID的,是用彈出窗口一個個出現的,不知道別人會不,,反正我就是這樣,太不利於查看了。
注意,希望人BLOG聽說第一次運行,會提示沒有js支持,點擊確定。然後再次運行就可以了。這樣就可以看到pid對應的應用程序池,這個我就沒測試了。
這樣吧,先再CMD裡面輸入:cd %systemroot%\system32
然後再輸入:cscrIPt.exe iisapp.vbs -a
CMD窗口顯示如下:
W3WP.exe PID: 2488 AppPoolId: AppPool #26
W3WP.exe PID: 3008 AppPoolId: AppPool #2
W3WP.exe PID: 4704 AppPoolId: AppPool #15
W3WP.exe PID: 6388 AppPoolId: AppPool #19
W3WP.exe PID: 6004 AppPoolId: AppPool #8
奇怪的是,我還是彈出了窗口,不過不影響顯示。有了這樣對於就好辦了。
再任務管理器裡面查看占用CPU和內存過高進程的PID值,就知道是哪一個應用程序池出了問題,就可以查到具體是什麼網站有問題了。
相關資料:
win2000的解決方法
2000下要怎麼辦呢?win2000下不大方便,需要將站點的應用程序保護設置為高,默認是中。
然後打開管理工具 > 組件管理,組件服務 — 計算機 — 我的電腦 — com+ 應用程序
選擇查看 > 狀態查看,就可以看到類似如下的顯示:
名稱 運行 PID
IIS-{www.45it.com//Root} 是 2544