狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

IIS6.0應用程序池的性能優化和設置技巧分享

admin
2014年4月12日 11:29 本文熱度 8790
公司的一個網站程序長時間運行后,速度變慢,重新啟動網站后速度明顯變快,估計是網站程序占用的內存和CPU資源沒能及時釋放,才需要每隔一段時間重啟網站釋放資源。


IIS6.0應用程序池回收和工作進程


公司的一個網站程序長時間運行后,速度變慢,重新啟動網站后速度明顯變快,估計是網站程序占用的內存和CPU資源沒能及時釋放,才需要每隔一段時間重啟網站釋放資源。但手工重啟總不能算解決問題的方法,怎樣才能實現自動管理呢?IIS6.0的應用程序池自動回收功能可以解決這一問題。


應用程序池是將一個或多個應用程序鏈接到一個或多個工作進程集合的配置。因為應用程序池中的應用程序與其他應用程序被工作進程邊界分隔,所以某個應用程序池中的應用程序不會受到其他應用程序池中應用程序所產生的問題的影響。


為Web程序配置應用程序池需要以下步驟:1)創建應用程序池,右鍵單擊“應用程序池”,“新建/應用程序池”,命名為KefuAppPool;2)為Web程序指定應用程序池,在網站虛擬目錄屬性“應用程序設置”里面的“應用程序池(N)”里選擇KefuAppPool;3)應用程序池自動回收方式的設置。回收方式有如下幾種:


a.根據運行時間


系統默認是1740分鐘,也就是29個小時,這個不是很好控制,建議不用。


b.請求數目


這個要看具體的情況了。如果只有10個請求,可是有5個都在請求那個比較占資源的頁面(可能是統計年度報表之類),這個時候就會出現進程當掉的情況,如果請求有1000個可是一個也沒運行比較占資源的頁面,這個時候進程肯定是很正常的,所以根據請求的數目來決定也不一定符合實際需要。


c.計劃的時間


這個其實很好,不過具體什么時間回收好呢?通常我們都是設置在凌晨兩三點鐘,這個時候回收是有必要的,不過針對出現隨時可能出現是高內存占用并不是很適用。


d.內存(虛擬內存或已使用的內存)


這個針對出現內存問題引起的進程當掉實在太合適了,不過設置多大的值比較好是一個很重要的問題,值不能太小了,否則如果訪問量都很大超過這個值的時候也會自動回收,這個就很沒必要了。一定要多多觀察進程的實際占用情況再做決定。


下面重點談談對工作進程回收應用程序池的理解。


默認情況下,WWW服務建立“重疊回收”,即繼續運行要終止的工作進程,直到啟動新的工作進程后為止。 在重疊回收方案中,要回收的進程繼續處理請求,同時 WWW 服務創建一個替代工作進程。在停止舊工作進程之前啟動新的工作進程,然后將請求定向到新的進程。此設計可以防止服務中斷,因為舊進程關閉前仍然保持與 HTTP.sys 的通信以處理請求。因為可重疊關閉或啟動的關閉超時值是可以配置的,所以在工作進程仍在處理請求的同時可以終止該進程(如果它在時間限制內沒有處理完請求的話)。


注意:當 WWW 服務回收某個工作進程時,它并不斷開現有的 TCP/IP 連接。HTTP 協議堆棧 (HTTP.sys) 建立并維護 TCP/IP 連接。


IIS中的每個應用程序池由一個“工作進程”進行管理,也就是"W3wp.exe" 進程。如果有多個應用程序池中的程序運行,我們就能看到多個w3wp.exe。這點可以在任務管理器中看到,如下圖所示,任務管理器中有兩個w3wp.exe進程,恰好對應兩個有應用程序在運行的應用程序池。

在命令提示符下運行iisapp -a,可以查看w3wp.exe和哪個應用程序池關聯。


下圖顯示了手動執行應用程序池KefuAppPool的回收,在回收前,回收中和回收后應用程序池和工作進程情況。我們注意到:回收過程中增加了一個工作進程(PID=3896),該工作進程(PID=3896)啟動好后,舊的工作進程(PID=5716)才被停止,新工作進程(PID=3896)正式替代舊進程工作,這就很好的防止了應用程序池回收過程中服務被中斷,保證了程序的連續運行。而其他兩個應用程序池對應的工作進程 PID都沒用變。該圖很好的展示了應用程序池回收的過程。





應用程序池這個東西著實讓管理服務器的人頭疼,如果不設置好網站隨時有可能罷工,甚至拖累服務器。因此特地找來此文章供大家參考。


另外說一點,如果網站訪問量不是很大,晚上沒什么人訪問,可以嘗試凌晨重啟服務器,這樣可以提高服務器的速度,為第二天的訪問做準備。


IIS 6的核心在于工作進程隔離模式,而應用程序池則是定義工作進程如何進行工作,因此,可以說應用程序池是整個IIS 6的核心。


和IIS 5中只能使用單個應用程序池不同,工作在工作進程隔離模式的IIS 6可以創建多個應用程序池,不同的應用程序池之間是完全隔離的,某個應用程序池停止服務時不會影響到其他應用程序池。


在使用應用程序池之前,你應該確定你所需要的應用程序池數量。可能有很多朋友會認為,既然不同的應用程序池之間是完全隔離的,那么我只需要為每個Web站點創建一個應用程序池就可以了。這個辦法在IIS服務器上具有較少的Web站點數量時可以使用,但是如果IIS服務器上具有很多Web站點數量,那么這個辦法就不適用了,因為不同的應用程序池在被訪問時都會創建各自的工作進程,當大量的工作進程并發工作時會消耗大量的系統資源和CPU利用率,反而會降低服務器性能。你應該根據Web站點的重要性、隔離性、所運行代碼的安全性和穩定性等來對IIS服務器上所具有的Web站點進行劃分,然后根據情況來決定所需要的應用程序池數量。對于那些非常重要的Web站點、需要單獨隔離的Web站點、所運行代碼穩定性和安全性并不可靠的Web站點配置為使用各自獨立的應用程序池,而將其他普通的Web站點配置為使用一個公共的應用程序池。


默認情況下,在安裝IIS時會創建一個默認網站并創建一個名為DefaultAppPool的應用程序池為其使用;默認配置下的應用程序池已經可以很好的進行工作,建議你只有在特別需要時才對應用程序池進行配置。


配置應用程序池屬性


在IIS管理控制臺中展開應用程序池文件夾,然后右擊對應的應用程序池,點擊屬性,你可以在應用程序池的屬性中進行以下配置:


回收


在回收標簽,你可以設置工作進程的回收方式:





回收工作進程(分鐘):在工作進程運行多少分鐘后回收工作進程,默認啟用,并且設置為1740分鐘(29小時);


回收工作進程(請求數目):在工作進程處理多少 個HTTP請求后終止此工作進程,默認禁用,如果啟用則默認值為35000;


在下列時間回收工作進程:在指定的時間回收工作進程,默認禁用;如需啟用,勾選后點擊添加按鈕添加回收的時間即可,使用24小時制定義回收的時間;


消耗太多內存時回收工作進程:


最大虛擬內存(兆):當工作進程使用的虛擬內存達到設置的值時回收工作進程,默認禁用,如果啟用則默認值為500 M;建議設置為不超過虛擬內存總數的70%;


最大使用的內存(兆):當工作進程使用的物理內存達到設置的值時回收工作進程,默認禁用,如果啟用則默認值為192 M;建議設置為不超過物理內存總數的60%;


另外需要注意的是,應用程序池具有以下兩種工作進程回收方式,不過這兩種回收方式均不會造成Web服務的中斷:


默認情況下,應用程序池使用重疊回收方式。在這種方式下,當應用程序池要關閉某個工作進程時,會先創建一個工作進程,直到新的工作進程成功創建后才關閉舊的工作進程;


應用程序池也可以先關閉舊的工作進程,然后再創建新的工作進程。


如果Web 應用程序不支持多實例運行,那么你必須配置應用程序池禁止使用重疊回收方式。此配置無法在IIS管理控制臺中進行修改,只能通過在 metabase.xml中修改對應應用程序池的DisallowOverlappingRotation metabase屬性為true進行。


性能


在性能標簽你可以設置工作進程的運行方式:





在空閑此段時間后關閉工作進程(分鐘):當工作進程空閑多少分鐘后關閉此工作進程,這降低了空閑工作進程對系統資源和CPU性能的消耗,默認啟用并且設置為20分鐘;


核心請求隊列限制為(請求次數):當HTTP.sys接收到某個客戶端發送的HTTP請求時,如果處理此請求的對應應用程序池的工作進程還處于忙狀態,則HTTP.sys將接收到的請求保存在對應應用程序池的請求隊列中,直到工作進程空閑為止。此選項即用于設置此應用程序池的請求隊列所能容納的請求數量,默認情況下每個應用程序池的請求隊列限制為保留1000個請求,如果超出則向客戶端返回503錯誤,你可以根據需要適當進行修改,最大可以設置為65535。但是如果設置太大則會消耗大量的系統資源 ,而設置太小會導致客戶端訪問時頻繁出現503錯誤。


啟用CPU監視:監視此應用程序池的CPU使用率,默認未啟用;如果某個應用程序池占用的CPU利用率過多,那么可以通過配置此選項來限制此應用程序池;


最大CPU使用率(百分比):所設置的應用程序池所能使用的最大CPU使用率;啟用CPU監視時默認值為100;


刷新CPU使用率(分鐘):刷新CPU使用率的間隔時間;啟用CPU監視時默認值為5;


CPU使用率超過最大使用率時執行的操作:當此應用程序池的CPU使用率超過所設置的最大CPU使用率時所進行的操作,啟用CPU監視時默認為無,此時IIS只是在事件日志中進行記錄而不進行其他操作;如果選擇為關閉,那么IIS將關閉此應用程序池中的所有工作進程;


Web園:在Web園中你可以配置此應用程序池所使用的最大工作進程數,默認為1,最大可以設置為4000000; 配置使用多個工作進程可以提高該應用程序池處理請求的性能,但是在設置為使用多個工作進程之前,請考慮以下兩點:


每一個工作進程都會消耗系統資源和CPU占用率;太多的工作進程會導致系統資源和CPU利用率的急劇消耗;


每一個工作進程都具有自己的狀態數據,如果Web應用程序依賴于工作進程保存狀態數據,那么可能不支持使用多個工作進程。


運行狀況


在運行狀況標簽你可以配置應用程序池監視工作進程的運行狀況,





啟用Ping:默認情況下應用程序池配置為每隔30秒Ping工作進程,當工作進程沒有進行響應時,則認為此工作進程出現故障并默認配置為關閉此工作進程。你可以修改Ping的時間間隔,但是太長的Ping間隔可能會導致Web服務的中斷,而太短的Ping間隔又會消耗更多的系統資源和CPU利用率,因此建議你保留默認配置;


啟用快速失敗保護:如果Web應用程序代碼編寫有問題,它可能會導致工作進程持續出現問題。默認情況下應用程序池配置為啟用快速失敗保護,當工作進程在配置的時間段(默認為5分鐘)內發生的失敗次數超過了配置的值(默認為5次),則禁用此應用程序池。


啟動時間限制:IIS等待屬于此應用程序池的工作進程啟動的時間,當工作進程啟用時間超出此設置值時,IIS會在事件日志中進行記錄;


關閉時間限制:當IIS檢測到某個工作進程出現故障時,將此工作進程標記為關閉,此選項指定了IIS等待工作進程自動關閉的時間限制,如果超出此時間限制后工作進程尚未關閉,則IIS強行關閉工作進程。


標識


在標識標簽,你可以配置工作進程所運行的用戶賬戶。在IIS 5或者當IIS 6運行在IIS 5隔離模式時,工作進程運行在本地系統賬戶,而運行在工作進程隔離模式下的IIS 6的工作進程運行在網絡服務賬戶下,這降低了系統被攻擊的可能性。


你可以配置工作進程運行在預定義的本地系統、本地服務或網絡服務賬戶下,也可以配置為使用某個自定義的用戶賬戶。建議使用默認的網絡服務賬戶;不過如果為了更高的安全性,可以配置使用自定義的用戶賬戶,不過建議你只是將此自定義用戶加入到IIS_WPG用戶組中,因此IIS_WPG用戶組包含了可以啟動和運行工作進程的最小權限。





1)在任務管理器中增加顯示pid字段;2)在命令提示符下運行iisapp -a。注意,第一次運行,會提示沒有js支持,點擊確定。然后再次運行就可以了。這樣就可以看到pid對應的應用程序池。如上圖左側所示,應用程序池 KefuAppPool和PID=3232的w3wp.exe相關聯,應用程序池ReportServer和PID=3572的w3wp.exe相關聯.


該文章在 2020/10/8 14:26:51 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2024 ClickSun All Rights Reserved