查看與配置
配置應用程式池屬性
在
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"代表應用程式池的實例名。如果要設定自動重啟這個應用程式池,可以嘗試放在批處理中,用計畫任務調用此批處理即可。很多人覺得計畫任務不安全,都要禁掉,事實上,計畫任務的不安全是建立在其它方面不安全的前提上的,如果由於其它方面的不安全,被放入執行程式,計畫任務執行,這和計畫任務沒有直接關係。當然,關掉,是會減少一些安全隱患,這是不錯。