关于w3wp.exe
一. IIS各版本間的區別
| 平臺 | Windows 2000 | Windows XP Professional | Windows Server 2003 家族 |
| 體系結構 | 32 位 | 32 位和 64 位 | 32 位和 64 位 |
| 應用程序進程模型 | TCP/IP 內核 DLLhost.exe(處于中等或高應用程序隔離模式下的多個 DLL 主機) | TCP/IP 內核 DLLhost.exe(處于中等或高應用程序隔離模式下的多個 DLL 主機) | HTTP.sys 內核 當 IIS 以 IIS 5.0 隔離模式運行時:Inetinfo.exe(對于進程內應用程序)或 DLLhost.exe(對于進程外應用程序) 當 IIS 以工作進程隔離模式運行時:W3wp.exe(多工作進程) |
| 配置數據庫配置 | 二進制 | 二進制 | XML |
| 安全性 | Windows 身份驗證 SSL Kerberos | Windows 身份驗證 SSL Kerberos 安全向導 | Windows 身份驗證 SSL Kerberos 安全向導 Passport 支持 |
| 遠程治理 | HTMLA | 無 HTMLA 終端服務 | 遠程治理工具 (HTML) 終端服務 |
| 群集支持 | IIS 群集 | Windows 支持 | Windows 支持 |
| WWW 服務 | Windows 9x 上的個人 Web 治理器 Windows 2000 上的 IIS | (可選)Windows XP Professional 上的 IIS | Windows |
二.關于wswp的一些知識。
Q : W3WP.EXE,應用程序,應用程序池之間的關系
A : 一個應用程序池可以包含多個應用程序,一個應用程序池創建一個W3WP.EXE進程.那么我們就不能簡單的說一個進程池對應一個W3WP.EXE進程了!其實是多個應用進程池對應一個W3WP.EXE進程的.
Q : 如何啟動和關閉W3WP.EXE這個進程
A : W3WP.EXE這個進程將在你訪問www應用程序的時候啟動.有人就會這么問了:"我啟動了一個Web應用程序,發現系統自動創建了一個W3wp.exe進程。但我關閉這個Web應用程序后,發現這個剛創建的W3Wp.exe進程還在,請問如何關閉該進程。"這個進程不會在你關閉了這個程序以后,就馬上關閉的.那是因為Http是無連接的訪問,當你關閉了web網頁,不會返回相應的關閉信息,所以W3WP.EXE這個進程不會因為你關閉了web應用程序爾關閉.
Q : 那么如何關閉這個進程呢?
A : 在應用程序池的配置中,"空閑超時"中設定合適的時間,系統默認的是20分鐘.設定好指定的時間,那么在這個時間范圍內沒有在訪問應用程序,那么系統會自動的關閉W3WP.EXE這個進程的.而不需要我們人為的干預的.也可以在Windows任務管理器里面,結束這個進程
Q : 如何讓W3WP.EXE進程長時間的運行.
A : W3WP.EXE這個進程的默認生命是1740分鐘,但依然是在這種默認的自然規律下,W3WP.EXE將在自己失業20分鐘后,被系統直接槍殺.這樣就可以看出,要想讓W3WP.EXE長時間的生存,那我們可以通過”空閑超時”不作處理來達到我們的目的.
Q : 在IIS6下,經常出現w3wp.exe的內存及CPU占用不能及時釋放,從而導致服務器響應速度很慢。
A: 解決內存占用過多,可以做以下配置 1、在IIS中對每個網站進行單獨的應用程序池配置。即互相之間不影響。 2、設置應用程序池的回收時間,默認為1720小時,可以根據情況修改。再設置當內存占用超過多少(如500M),就自動回收內存。
解決CPU占用過多: 1、在IIS中對每個網站進行單獨的應用程序池配置。即互相之間不影響。 2、設置應用程序池的CPU監視,不超過25%(服務器為4CPU),每分鐘刷新,超過限制時關閉。
根據w3wp取得是那個一個應用程序池: 1、在任務管理器中增加顯示pid字段。就可以看到占用內存或者cpu最高的進程pid 2、在命令提示符下運行iisapp -a。注意,第一次運行,會提示沒有js支持,點擊確定。然后再次運行就可以了。這樣就可以看到pid對應的應用程序池。(iisapp實際上是存放在C:\windows\system32目錄下的一個VBS腳本,全名為iisapp.vbs,如果禁止了Vbs默認關聯程序,那么就需要手動到該目錄,先擇打開方式,然后選“Microsoft (r) Windows Based Script Host”來執行,就可以得到PID與應用程序池的對應關系。) 3、到iis中察看該應用程序池對應的網站,就ok了,做出上面的內存或CPU方面的限制,或檢查程序有無死循環之類的問題。
Q : 另一種加載了某程序后發生w3wp.exe問題
A: 修改C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config,再配置節點<processModel>中有一個屬性"memoryLimit",這個屬性的值是一個百分比,默認為"60"(注意,是60%不是60M),即制定了ASP.NET進程能夠使用所有物理內存的60%,當ASP.NET使用的內存量超過這個限額時,IIS會開始自動回收進程,即創建一個新的進程去負責應付HTTP請求,而將舊進程所占用的內存回收.
Q : w3wp.exe在進程中存在的原因 A : IIS 6.0版本中的w3wp.exe進程是會根據INTER信息的開放與否而決定是否存在,只要IIS提供WEB服務,該進程會始終存在,無論是否支持asp或asp.NET等類似語言腳本,w3wp.exe該進程是允許多個運行并存的,且可以通過手工設置來決定并存數量。由于多個運行并存,因而當該進程占用CPU利用率達到手工設置的飽和數值時(如70%),執行操作為"關閉"即可,不會對提供WEB服務有任何影響。
Q : w3wp.exe間歇性占用CPU(處理器)資源100%持高不下,持續時間幾分鐘至是幾分鐘不等,其原因? A : ·設置在IIS中的WEB站點其程序問題,如執行大量查詢操作等; ????? ·WEB站點提供的系統服務相關,如提供文件上傳服務從而占用過多資源等;
三. IIS6.0應用程序池
??????? ?IIS 6.0 提供應用程序池以支持靈活且高性能的Web 應用程序設計。應用程序池是將一個或多個應用程序連接到一組或多組工作進程的 IIS 6.0 配置選項。在CDC 情境中,將具有相似可用性和性能要求的 Web 應用程序組合到一起以形成應用程序池。這種分組可提供更高層次的資源分配精細度,對請求隊列設置閥值并實現最佳的性能。將一些有嚴格性能要求的應用程序配置成 Web 園的一部分。通過設置處理器親合為帶有 CPU 密集型任務的應用程序分配專用處理器組,以免和其它應用程序爭用 CPU 周期。
???????? IIS6.0不以IIS5.0隔離模式<Inetinfo.exe(對于進程內應用程序)或 DLLhost.exe(對于進程外應用程序)>工作的時候,W3wp.exe(多工作進程)將在訪問www服務時候啟動。
??????? ?通過IIS6.0新增的“應用程序池”可以對此進行調度,根據調換Web園的數量可以限定該池的工作進程數量,經過測試同屬于一個池中的程序,服務器將在訪問每個虛擬目錄或站點時啟動一個W3wp.exe進程。直至達到設置的Web園最大數量。根據站點的命中頻率我們設置回收進程的時間,默認為20分鐘,根據訪問量具體定。在站點內存耗費過大時及時回收內存,可以有效的避免溢出。
四. 什么是Web園
???????? 在您創建應用程序池時,就會通知 IIS 6 創建一個工作進程,以傳送指派給該應用程序池的 Web 站點、文件和文件夾的內容。您可以將應用程序池配置為啟動多個,而非一個工作進程,這樣可以提高可擴展性。這個功能的名為 Web 園,是小型的“Web 農場”。您無需使用多臺計算機來傳送相同的內容(Web 農場),而是可以使用一臺計算機中的多個進程來傳送相同的內容。 ???????? 在將 IIS 6 應用程序配置為 Web 園時,您只需在“應用程序池屬性”的“性能”選項卡的“最大工作進程數”框中,設置一個大于 1 的工作進程數。如果這個值大于 1,每個請求都將啟動一個新的工作進程實例,可啟動的最多進程數為您所指定的最大工作進程數。后續的請求將以循環的方式發送至工作進程。
???????? Web 園在您的應用程序資源有限的情況下非常有用。例如,如果您到數據庫的連接很慢,那么您可以使用多個工作進程來增加用戶吞吐量,從而增加到數據庫的連接數。 ?????? ? 盡管在有些情況下使用 Web 園的用處非常大,但是要注意,每個工作進程的會話信息都是唯一的。由于請求以循環的方式路由到應用程序池工作進程,因此 Web 園對于會話信息存儲在進程中的應用程序作用可能不大。在少數情況下,讓多個工作進程運行同一個應用程序會造成資源競爭。例如,如果所有工作進程都試圖將信息記錄到日志文件中,或是使用那些不是專用于多個并發訪問的資源,那么可能出現資源競爭問題。
總結
以上是生活随笔為你收集整理的关于w3wp.exe的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 哪些渠道可以办理民生白条联名卡
- 下一篇: C#进阶系列——AOP?AOP!