為應用程式集區 DefaultAppPool 提供服務的進程關閉時間超過了限制_win伺服器

來源:互聯網
上載者:User

為應用程式集區 'DefaultAppPool' 提供服務的進程關閉時間超過了限制
伺服器經常產生“應用程式集區 'DefaultAppPool' 提供服務的進程關閉時間超過了限制。進程 ID 是 '2068'。”的錯誤,導致iis處於假死狀態,經瞭解是IIS應用程式集區的設定問題。解決方案如下:

Internet 資訊服務(IIS)管理器->應用程式集區->DefaultAppPool->右擊屬性
一、回收
1、回收背景工作處理序(分鐘):選中,值為1740
2、回收背景工作處理序(請求數目):不選(原先設定為35000)
3、在下列時間回收背景工作處理序:不填
4、消耗太多記憶體時回收背景工作處理序:全不選。(2、3、4項可能避免了在訪問量高的時候強制回收進程可能引發的伺服器響應問題,導致iis假死不響應)
二、效能
只選中空閑逾時20分鐘。其他都不選。WEB園最大背景工作處理序數為1(預設)。注意web園這裡一定要保持預設,如果填寫其他超過1的數字就會導致一些網站程式的背景程式打不開或者重新整理不停。

原來的請求隊列限制為4000,現在無限制。
三、健全狀態
前兩項都起用,是原來的預設設定。啟動時間限制90秒,關閉時間限制180秒。

啟動快速失敗保護的鉤去掉!
為了避免真的遇到很多錯誤時沒有提示,可以不關閉,只是把快速保護的保護範圍加大些,例如失敗數50次 時間段5分鐘 則關閉對應的程式。

“關閉時間限制180秒”是必須的,因為進程關閉的時間,原來為90秒限制,是預設值,如果進程關閉時間超過90秒,則認為逾時,從而出現:進程關閉時間超過了限制 日誌,所以,適當延長這個時間,可以避免這種錯誤

第2種方法:
原因:獨立進程的 記憶體堆戔消耗完了,IIS不能建立更多的進程工作空間來處理
解決方案:
1. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC
2. 在Parameters鍵下建立一個DWORD項,名字為:UseSharedWPDesktop 值為1 重啟IIS
第3種
問題已解決,發現是資料庫連接無法釋放,不知道是什麼原因,同樣的代碼在本地就是好的,在伺服器端就有問題,最後在串連串裡加入以下語句解決問題.
Pooling=true; MAX Pool Size=512;Min Pool Size=50;Connection Lifetime=30
第4種
建立應用程式集區,不同的網站引用不同程式池。

下面是其它網友的補充:

" 為應用程式集區 'AppPool #1' 提供服務的進程關閉時間超過了限制" 的錯誤出現究其原因是由於網站的訪問量串連數過大,引起應用程式集區處理串連的時候,新的還沒有接替,而舊的又要回收,但在回收的過程中不及時,照常應用程式集區當機,網站無法訪問,出現了這個錯誤。

當網站無法訪問的時候,手動回收應用程式集區,即可恢複,不過手動恢複的話,畢竟很麻煩,你不能一天都盯著這個網站看吧?問題出在應用程式集區的話,那我們就從應用程式集區的配置下手來看是否能解決問題。

1、首先建議每個網站分別建立一個應用程式集區,一個應用程式集區將對應不同的w3wp.exe進程,在“命令提示字元”下使用iisapp命令 可以察看網站對應的w3wp.exe的pid值,方便尋找出問題的進程。

2、應用程式集區的配置
個人意見覺得在應用程式集區的屬性視窗中,“回收”和“健全狀態”2個選項卡的配置比較重要。

2.1、回收 選項卡

1、回收背景工作處理序(分鐘):在背景工作處理序運行多少分鐘後回收背景工作處理序,預設啟用,並且設定為1740分鐘(29小時);
2、回收背景工作處理序(請求數目):在背景工作處理序處理多少 個HTTP請求後終止此背景工作處理序,預設禁用,如果啟用則預設值為35000;
3、在下列時間回收背景工作處理序:在指定的時間回收背景工作處理序,預設禁用;如需啟用,勾選後點擊添加按鈕添加回收的時間即可,使用24小時制定義回收的時間;
4、消耗太多記憶體時回收背景工作處理序:
最大虛擬記憶體(兆):當背景工作處理序使用的虛擬記憶體達到設定的值時回收背景工作處理序,預設禁用,如果啟用則預設值為500 M;建議設定為不超過虛擬記憶體總數的70%;
最大使用的記憶體(兆):當背景工作處理序使用的實體記憶體達到設定的值時回收背景工作處理序,預設禁用,如果啟用則預設值為192 M;建議設定為不超過實體記憶體總數的60%;

2.2、效能

1、在空閑此段時間後關閉背景工作處理序(分鐘):當背景工作處理序空閑多少分鐘後關閉此背景工作處理序,這降低了空閑背景工作處理序對系統資源和CPU效能的消耗,預設啟用並且設定為20分鐘;

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

2.3、健全狀態

1、啟用Ping:預設情況下應用程式集區配置為每隔30秒Ping背景工作處理序,當背景工作處理序沒有進行響應時,則認為此背景工作處理序出現故障並預設配置為關閉此背景工作處理序。你可以修改Ping的時間間隔,但是太長的Ping間隔可能會導致Web服務的中斷,而太短的Ping間隔又會消耗更多的系統資源和CPU利用率,因此建議你保留預設配置;
2、啟用快速失敗保護:如果Web應用程式代碼編寫有問題,它可能會導致背景工作處理序持續出現問題。預設情況下應用程式集區配置為啟用快速失敗保護,當背景工作處理序在配置的時間段(預設為5分鐘)內發生的失敗次數超過了配置的值(預設為5次),則禁用此應用程式集區。
3、啟動時間限制:IIS等待屬於此應用程式集區的背景工作處理序啟動的時間,當背景工作處理序啟用時間超出此設定值時,IIS會在事件記錄中進行記錄;
4、關閉時間限制:當IIS檢測到某個背景工作處理序出現故障時,將此背景工作處理序標記為關閉,此選項指定了IIS等待背景工作處理序自動關閉的時間限制,如果超出此時間限制後背景工作處理序尚未關閉,則IIS強行關閉背景工作處理序。

不同的情況下有不同的設定方法,

[引用:iis 回收背景工作處理序時出錯的解決辦法

第一種解決方案:

iis6系統預設的背景工作處理序回收時間是29個小時有很多問題是在回收背景工作處理序後出現很多問題如典型的500錯誤等經過我做伺服器的一段時間的觀察大家可以不用回收背景工作處理序而是把應用程式集區的最大使用記憶體調整到一個合適的值就可以了,因為如果設定了不回收背景工作處理序,哪麼這個應用程式集區所佔用記憶體的體積會很大並在不短增加中,我們設定了這個池最大使用記憶體的大小就控制注了這個應用程式集區的程式變化在一個合理的值裡

第二種解決方案:

IIS6的應用程式集區會經常出現一些問題

[查看系統日誌會發現下邊錯誤]

為應用程式集區 'DefaultAppPool' 提供服務的進程關閉時間超過了限制。進程 ID 是 '3484'。

[隨之而來的還有]

事件 ID ( 54 )的描述(在資源( HTTP )中)無法找到。本機電腦可能沒有必要的註冊資訊或訊息 DLL 檔案來從遠端電腦顯示訊息。您可能可以使用 /AUXSOURCE= 標識來檢索詞描述;查看協助和支援以瞭解詳細資料。下列資訊是事件的一部分: /Device/Http/AppPool.

網上查了很多資料,多說是應用程式集區無法在指定的時間內回收造成的。適當的延長時間即可解決,最開始我設定為10分鐘內必須回收。但是問題依舊。無奈只好關閉了回收,不回收的結果就是記憶體得不到釋放,一次手動回收程式池並觀察進程動態,讓我突然明白其中道理。

每個程式池都會有個獨立進程 w3wp.exe ,而在回收程式池時,系統會建立個w3wp.exe進程,用於處理新的web請求,從而慢慢釋放舊的進程。如果在指定時間內舊的進程沒有釋放完,那麼就會導致程式池出錯。

所以,把時間設長點就行了,我設成了3600秒,也就是一小時。設定之後程式池就再沒出現過問題,每天觀察伺服器,記憶體都能被很好的釋放。

下面是我的程式池設定,僅供參考。

右擊應用程式集區DefaultAppPool,選取屬性:

一、回收

1、回收背景工作處理序(分鐘):(不選)

2、回收背景工作處理序(請求數目):(不選)

3、在下列時間回收背景工作處理序:我設定為淩晨3點,因為那個時候訪問量最少,請求最少,較容易釋放資源。

4、消耗太多記憶體時回收背景工作處理序:(不選)

二、效能

空閑逾時20分鐘:(不選)

請求隊列限制:(不選)

WEB園最大背景工作處理序數為1(預設)。

三、健全狀態

啟用ping:選中

啟用快速失敗保護:不選。

啟動時間限制:900秒

關閉時間限制:3600秒。

第三種解決方案:

因為應用程式集區 DefaultAppPool 提供服務的進程關閉時間超過了限制 伺服器經常產生“應用程式集區 DefaultAppPool 提供服務的進程關閉時間超過了限制。進程 ID 是 2068。”的錯誤,導致iis處於假死狀態,經瞭解是IIS應用程式集區的設定問題。解決方案如下:Internet 資訊服務(IIS)管理器->應用程式集區->DefaultAppPool->右擊屬性一、回收1、回收背景工作處理序(分鐘):選中,值為17402、回收背景工作處理序(請求數目):不選(原先設定為35000)3、在下列時間回收背景工作處理序:不填4、消耗太多記憶體時回收背景工作處理序:全不選。(2、3、4項可能避免了在訪問量高的時候強制回收進程可能引發的伺服器響應問題,導致iis假死不響應)二、效能只選中空閑逾時20分鐘。其他都不選。WEB園最大背景工作處理序數為1(預設)。注意web園這裡一定要保持預設,如果填寫其他超過1的數字就會導致一些網站程式的背景程式打不開或者重新整理不停。原來的請求隊列限制為4000,現在無限制。三、健全狀態前兩項都起用,是原來的預設設定。啟動時間限制90秒,關閉時間限制180秒。啟動快速失敗保護的鉤去掉!為了避免真的遇到很多錯誤時沒有提示,可以不關閉,只是把快速保護的保護範圍加大些,例如失敗數50次 時間段5分鐘 則關閉對應的程式。“關閉時間限制180秒”是必須的,因為進程關閉的時間,原來為90秒限制,是預設值,如果進程關閉時間超過90秒,則認為逾時,從而出現:進程關閉時間超過了限制 日誌,所以,適當延長這個時間,可以避免這種錯誤

]

這篇博文裡給出的方法不失為一些很好的解決方案,但是對於我的伺服器而言,不能解決問題,我的網站由於有一個投票系統,有人刷票,這種刷票行為是不定時不確定的,來的時候大量訪問,造成當機,不刷的時候伺服器沒什麼流量,所以它所提到的方法不是很適合我的伺服器。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.