香港服務(wù)器進(jìn)行初始化和預(yù)加載的原因
一、IIS 網(wǎng)站在第一次請求時,需要進(jìn)行了初始化操作,而這個初始化操作耗費(fèi)了時間。當(dāng)?shù)诙握埱髸r,不再需要初始化操作,因此變快了。當(dāng)網(wǎng)站在一段時間內(nèi),沒有接收到請求時,IIS 回收了資源,當(dāng)再次接收請求時,又重新進(jìn)行初始化操作。IIS 的初始化和資源回收,是為了網(wǎng)站穩(wěn)定運(yùn)行,內(nèi)存資源得到充分利用管理。IIS 默認(rèn)情況下 29 小時回收一次資源。下面我們通過設(shè)置改變 IIS 默認(rèn)行為,使網(wǎng)站既能保持穩(wěn)定運(yùn)行,又能提高網(wǎng)站響應(yīng)速度,最終提高用戶體驗(yàn)。
二、安裝 IIS 應(yīng)用程序初始化功能
1、打開“服務(wù)器管理器”,左側(cè)選擇“IIS”,右側(cè)列表中,鼠標(biāo)右鍵選擇“添加角色和功能”。
2、彈出“添加角色和功能向?qū)А?,在向?qū)е小胺?wù)器角色”里選擇“應(yīng)用程序初始化”,右側(cè)顯示描述為,應(yīng)用程序初始化先執(zhí)行耗費(fèi)資源的 Web 應(yīng)用程序初始化任務(wù),然后再為網(wǎng)頁提供服務(wù)。
三.設(shè)置網(wǎng)站應(yīng)用程序池1、打開 IIS 管理器,左側(cè)展開“應(yīng)用程序池”節(jié)點(diǎn),右側(cè)選擇某個網(wǎng)站的應(yīng)用程序池,鼠標(biāo)右鍵“高級設(shè)置”。
2、在應(yīng)用程序池高級設(shè)置中,設(shè)置 4 項(xiàng)。
常規(guī) > 啟動模式,設(shè)置為“AlwaysRunning”。將應(yīng)用程序池配置為始終運(yùn)行模式下運(yùn)行。
回收 > 固定時間間隔(分鐘),設(shè)置為“0”。一個時間段(以分鐘為單位),超過該時間后,應(yīng)用程序池將回收。值為 0 意味著應(yīng)用程序池不會按固定間隔回收。
回收 > 特定時間,添加一組時間為凌晨 4 點(diǎn)。應(yīng)用程序池進(jìn)行回收的一組特定的本地時間(24 小時制)。
進(jìn)程模型 > 閑置超時(分鐘),設(shè)置為“0”。工作進(jìn)程在關(guān)閉之前可以保持閑置狀態(tài)的時間(以分鐘為單位)。如果某個工作進(jìn)程既未處理請求,也未收到任何新的請求,則將進(jìn)入閑置狀態(tài)。
設(shè)置解釋:將某網(wǎng)站的應(yīng)用程序池設(shè)置為始終運(yùn)行,工作進(jìn)程不進(jìn)入閑置狀態(tài),不按照固定時間間隔回收程序池,采用特定時間回收程序池,并設(shè)置回收時間為每天凌晨 4 點(diǎn)回收。設(shè)置凌晨 4 點(diǎn)回收,也就是考慮此時網(wǎng)站訪問人數(shù)相對較少,服務(wù)器資源相對較多,最大降低對用戶的影響。另外,需要注意的是,回收將導(dǎo)致網(wǎng)站內(nèi)存信息消失,例如 session 存放在內(nèi)存,會導(dǎo)致 session 消失。不只是回收會導(dǎo)致 session 丟失,其它也會導(dǎo)致,例如更新網(wǎng)站配置,手動重啟回收等,都會導(dǎo)致 session 丟失??煽紤]其他方式保存 session,例如數(shù)據(jù)庫或 cookie 等。
四、啟用網(wǎng)站預(yù)加載設(shè)置通過預(yù)加載工作進(jìn)程減少第一個請求的響應(yīng)時間。IIS 應(yīng)用程序初始化允許網(wǎng)站在第一個請求到達(dá)之前,在工作進(jìn)程啟動后立即配置要預(yù)加載的 Web 應(yīng)用程序。通過預(yù)加載應(yīng)用程序,工作進(jìn)程能夠減少響應(yīng)第一個請求所需的時間。在請求到達(dá)服務(wù)器時,已經(jīng)執(zhí)行了依賴項(xiàng)的加載和初始化,例如數(shù)據(jù)庫連接,.NET Framework 以及 ASP.NET 應(yīng)用程序和依賴項(xiàng)的即時編譯。
1、打開 IIS 管理器,左側(cè)展開“網(wǎng)站”節(jié)點(diǎn),在網(wǎng)站上鼠標(biāo)右鍵選擇“管理網(wǎng)站 > 高級設(shè)置”。
2、在“高級設(shè)置”設(shè)置“預(yù)加載已啟用”為“true”。
五、設(shè)置初始化請求地址
IIS 應(yīng)用程序初始化可以提高用戶體驗(yàn)。通過指定要執(zhí)行的一組 URL 來初始化應(yīng)用程序,并且可以將 IIS 配置為在應(yīng)用程序完成初始化之前返回備用響應(yīng)(如靜態(tài)內(nèi)容)。在 Web.config 配置文件中也可以設(shè)置以上屬性:
1.
2. 3. doAppInitAfterRestart="true"
4. skipManagedModules="true"
5. remapManagedRequestsTo="filename.htm"