只有累積,沒有奇蹟

2018年12月18日 星期二

[IIS] 如何解決網站第一個請求 Request 特別慢 ?

問題
相信大家都有類似的經驗,在寫完的 Code 佈署到 IIS 開好網頁要準備要進入網站要測試時,網站的第一個請求總是特別慢,尤其是開發已久的程式要在 Production 驗證時心情總是特別緊張,這等待的時間更是讓人很煎熬(不知道會不會爆炸 XD),如何加速網站第一個 Request 呢 ? 過去待過的公司會在佈署完後透過 Jenkins 去打 Server 來 "喚醒" 它在此簡單記錄一下如何透過 IIS 設定加速網站第一個 Request 的過程

處理方式 
IIS 8.0 開始提供 網站預先啟動功能 (Preload)主要是透過 Application Initialization模組改善了網站第一位使用者等待網站初始化動作過久的問題讓 IIS 啟動網站時先進行 Application 的初始化動作,加快 Response 回應時間,設定方式如下

安裝 Application Initialization feature
如果要啟用的話需要先檢查是否有安裝 Application Initialization feature檢查方式如下 
1. 開啟控制台 > 程式集 > 開啟或關閉 Windows 功能 
2. Internal Information Service > WWW 服務 > 應用程式開發功能 
3. 應用程式初始化選項打勾

設定 IIS
1. 開啟要設定的 Application 應用程式,點選 進階設定
2. 可以看到 預先載入已啟用 功能 設定為 True 
Note : 下方說明可以看到,preloadEnable 為 True ,就會啟用應用程式的預先載入功能

3. 接下來到應用程式集區
4. 點選要設定的 Application Pool,選擇 進階設定
5. 啟用模式原本是 OnDemand選擇 AlwaysRunning,按下確定
Note : 下方說明可以看到,[startMode] 設定應用程式集區要以 隨選 或是 永遠執行 模式執行

如果是IIS 7.5的話,需要另外下載 Application Warming up 模組
設定方式也是類似上述步驟,詳細可以參考 Michelle哥 Blog 詳細說明 
ASP.NET 程式中的背景工作 (1)

打完收工大功告成 !

參考
IIS 8.0 Application Initialization
ASP.NET開發人員不可不知的 IIS
iis8-preloaded

0 意見:

張貼留言

Copyright © m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com