iis應用程式池

iis應用程式池

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

基本介紹

  • 中文名:iis應用程式池
  • 工作進程:默認值為35000
  • 虛擬記憶體:500 M
  • 使用的記憶體:192 M
查看與配置,配置應用程式池屬性,回收,性能,運行狀況,標識,創建應用程式池,分配Web站點到應用程式池中,服務停止的解決方法,

查看與配置

配置應用程式池屬性

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用戶組包含了可以啟動和運行工作進程的最小許可權。

創建應用程式池

要新建應用程式池,在IIS管理控制台中右擊應用程式池資料夾,指向新建,選擇應用程式池
然後在彈出的添加新應用程式池對話框,在應用程式池ID欄輸入應用程式池名,然後選擇使用默認設定還是繼承現有的應用程式池設定,再點擊確定即可;

分配Web站點到應用程式池中

IIS管理控制台中展開網站資料夾,右擊對應的網站,然後選擇屬性,在彈出的網站屬性對話框上,點擊主目錄標籤,然後在應用程式池欄選擇不同的應用程式池即可,默認情況下所有網站所使用的應用程式均名為默認應用程式,如果要想此網站使用不同的應用程式名,則在應用程式名欄修改即可,例如在此我就修改為winsvr,這主要是便於查看,然後點擊確定即可,

服務停止的解決方法

一、2003應用程式池自動死了,不能恢復了,一直出現 Service Unavailable 常見方法如下。
1:沒有打SP1補丁的時候會出現這個IIS6.0假死問題,但現在微軟都在自動更新裡面出補丁了,一般你打好最新補丁後是不會出現此問題了。(所以現在的IIS假死與這個關係不是很大)
2:從IIS6.0開始CPU資源都在套用池裡面限制了,不象以前的IIS.5。所以假死的池的緣故就是池被拉死,你在網站打不開的時候可以看到你的某個套用池是禁用的,上面出現一個紅叉。你滑鼠右鍵啟動網站又會自動恢復。 這個原因:大概是以下幾個因數造成的。(1):你限制了套用池的資源,限制得太小 比如:50這樣或更少更多一點,這個時候如果你這個池下面的網站占用CPU太高,比如超過50% 那么5分鐘後他就自動死了,手工默認建立的套用池默認是超過資源不操作。出現上面這個情況解決方法:1:不限制CPU資源,(這個是不可取的,不限制資源,有的程式有BUG占用資源厲害了的,伺服器都會被拉死,你可能都無法操作伺服器。)2:在超過資源那裡選擇關閉,這個關閉默認是失敗5次,90秒內恢復,一般默認就可。網站能自動恢復,這個關閉:不是永久關閉,意思是超過資源關閉,然後在某時間內自動恢復池。不操作就是不恢復,這個是很多人的誤區。(2):記憶體限制 在IIS6.0套用池上面有虛擬記憶體和最大記憶體限制,如果你設定了這個。那么網站訪問量大了 也會出現假死,所以不建議設定這裡。默認就可。
3:就是伺服器自身記憶體太小,網站運行當然需要使用到記憶體了,當記憶體不夠的時候套用池也會死掉變成禁用。那么只有等記憶體全部釋放出來才能恢復套用池了。出現這個情況:那么你就要考慮加記憶體或者檢查到底是什麼程式占用了記憶體了。比如MSSQL資料庫,這個可是吃記憶體得大戶啊,最好別和WEB伺服器同時一個伺服器上。很多人用1G記憶體做 2003系統,2003NET結構是很占用記憶體的,所以做伺服器選2003還得把記憶體加到2G或更高才好。 記憶體不夠上面 2點講到的,是沒辦法操作了,也無法自動恢復。
4:就是ACCESS資料庫太大或查詢太多,這個也會出現把IIS拉死,解決方法;修復ACCESS資料庫,或儘量少用ACCESS資料庫,升級至sqlserver資料庫;或者在技術方面革新,像現在有些網站系統,風訊、動易等cms;pjblog、zblog等部落格程式,都支持生成靜態功能.
5:不同網站用不同套用池:根據你自己實際情況而定,站點大的最好獨立一個套用池,限制他的資源超過了自動回收,看上面(1)講到的,這樣就不影響其他站點。中型站點:多個網站共用一個套用池,比如5個站點用一個池,設定他資源時間等等。這樣他們就算超資源了也不影響其他套用池的網站。
6:設定回收時間:很多人以為設定回收池越短越好,其實是錯誤的,每次回收當然是把記憶體回收回來了,但加重了一次伺服器的負擔,當伺服器比較繁忙的時候,有可能導致其他套用池死。所以建議設定共1000就行了。其他獨立池按照他網站流量而設定 可以設定600 也行,共用的不建議設定太短。
7:網站後台過不了多久自動退出又要重新登入:這個情況就是你設定回收時間太短了,按照 6點設定吧。 不要設定什麼20分、30分這樣的,這樣不好的。另外一個原因就是和站的回響設定時間有關,設定得稍長些。
8:windows 2003系統iis6訪問本機的站點時提示“Service Unavailable”;查看iis的應用程式池,狀況提示為:未指定錯誤,同時應用程式池自動停止運行;用事件查看器查看系統錯誤日誌,發現如下提示:-----------------------------------應用程式-特定 許可權設定未將 COM 伺服器應用程式(CLSID 為{A9E69610-B80D-11D0-B9B9-00A0C922E750})的 本地 激活 許可權授予用戶 NT AUTHORITY\NETWORK SERVICE SID (S-1-5-20)。可以使用組件服務管理工具修改此安全許可權。解決方法,給NETWORK SERVICE 加上訪問iis服務的許可權,具體方法如下:點擊“開始”-“控制臺”-“管理工具”-“組件服務”-“計算機”-“我的電腦”-“DCOM”選項,選擇其下的“IIS ADMIN SERVICE”,右健選擇“屬性”,找到“安全”,在“啟動和激活許可權”中編輯“自定義”,添加帳號“NETWORK SERVICE ”,給該帳號賦予“本地啟動”和“本地激活”的許可權,重新啟動IIS之後再訪問同一站點,則一切正常。
9:重啟IIS中的特定應用程式池命令和自動重啟的方法在作業系統是Windows server 2003 SP1+的情況下,可以用以下命令部分重啟IIS應用程式池: cscript.exe c:\windows\system32\iisapp.vbs /a "DefaultAppPool" 其中/a 代表alternatively,"DefaultAppPool"代表應用程式池的實例名。如果要設定自動重啟這個應用程式池,可以嘗試放在批處理中,用計畫任務調用此批處理即可。很多人覺得計畫任務不安全,都要禁掉,事實上,計畫任務的不安全是建立在其它方面不安全的前提上的,如果由於其它方面的不安全,被放入執行程式,計畫任務執行,這和計畫任務沒有直接關係。當然,關掉,是會減少一些安全隱患,這是不錯。

相關詞條

熱門詞條

聯絡我們