IIS應用程式集區自動回收問題的有效解決辦法

來源:互聯網
上載者:User

標籤:

IIS可以設定定時自動回收,預設回收是1740分鐘,也就是29小時。IIS自動回收相當於伺服器IIS重啟,應用程式集區記憶體清空,所有資料被清除,相當於IIS重啟,在度量快速開發平台伺服器端,為了減小資料庫負擔,記憶體中暫存了很多資訊,不適合頻繁的回收,因為回收會造成伺服器端所有存在記憶體中的資料丟失,如果沒有及時儲存到資料庫中,可能導致程式出現問題。而如果系統使用高峰時期,並不適合回收,回收可能導致幾十秒IIS無響應,對於正在工作的人員來說,是一種很不好的體驗,會以為是網路或者掉線等問題。因此,基於以上的分析,我們需要設定IIS在指定的時間內定時回收。
      度量快速開發平台(以下簡稱:度量平台)服務端搭建採用Webservice方式進行,這就需要正確的配置IIS(Internet Information Service)才能保證服務端可靠、穩定的運行,以給客戶提供更好的使用者體驗。IIS為保護伺服器資源,有一個應用程式集區的回收功能,並且已經預設設定1740分鐘回收一次(29小時),為了更好的設定該屬性,我們有必要對IIS回收功能設定進行掌握,並根據應用的實際情況配合調整,以達到系統啟動並執行最佳效果。
IIS應用程式集區回收,找到相應的應用程式集區並點擊進階設定,就可以看到回收的相關設定(本文以windows2008R2下的IIS7為例,Windows2012類似)。

(圖1) 

發生配置更改時禁止回收:如果為True,應用程式集區在發生配置更改時將不會回收。
固定時間間隔(分鐘):超過設定的時間後,應用程式集區回收,為0意味著應用程式集區不會按固定間隔回收。系統預設設定的時間是1740(29小時)。
禁用重疊回收:如果為true,將發生應用程式集區回收,以便在建立另一個背景工作處理序之前退出現有背景工作處理序。
要求節流:應用程式集區在回收之前可以處理的最大請求數。如果值為0,則表示應用程式集區可以處理的請求數沒有限制。
產生回收事件記錄條目:每發生一次指定的回收事件時便產生一個事件記錄條目,裡面的明細設定不一一介紹。

    根據度量平台服務端配置情況看,IIS預設設定的1740分鐘回收進程的策略並不合理,因為每1740分鐘回收,在過程中可能就處於使用者使用系統的高峰時段,為避免可能在高峰時段引起非可控問題,我們建議在每周六深夜(例如晚上1點,2點)進行IIS回收。

    如果我們在IIS應用程式集區的進階設定中,進行回收設定,那麼只有兩種方式進行,一種是固定時間間隔,一種是手動回收。固定時間間隔設定,並不太好在深夜設定,以保證每周周六深夜執行回收。我們推薦採用windows “工作排程器”配置一個作業系統定時任務執行指令碼程式來實現IIS回收,設定方便,也可以靈活調整。 要通過指令碼執行IIS的功能,需要在IIS安裝配置的時候,勾選上管理工具中的“IIS管理指令碼和工具”(見)。

用vbs指令碼及批次檔,結合工作排程器,保證在每周六深夜1點執行IIS回收。

Recyclepool.vbs 檔案內容:

appPoolName = WScript.Arguments(0)

Set oWebAdmin = GetObject("winmgmts:root\WebAdministration")

Set oAppPool = oWebAdmin.Get("ApplicationPool.Name=‘" + appPoolName + "‘")

oAppPool.Recycle

set fso=createobject("scripting.filesystemobject")

if (fso.fileexists("d:\appPool\recycleIISPool.log")) then

   ‘1-forreading,2-forwriting,8-appending

   set file=fso.opentextfile("d:\appPool\recycleIISPool.log",8,ture)

else

   set file=fso.createtextfile( "d:\appPool\recycleIISPool.log",8,ture)

end if

‘write(x)寫入x個字元,writeline寫入換行,writeblanklines(n)寫入N個空行

file.writeline  now&" 應用程式集區“"&appPoolName &"”已經回收成功。"

file.close

Recyclepool.bat檔案內容:

cscript D:\appPool\recyclepool.vbs platweb

 

用vbs指令碼及批次檔,結合工作排程器,保證在每周六深夜1點執行IIS回收。

成功用windows計劃任務解決IIS定時回收問題。

IIS應用程式集區自動回收問題的有效解決辦法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.