Windows Server web server Apache 網站伺服器 Linux NGINX 伺服器 IIS

從監視運行到調校參數 優化IIS網站效能

2016-07-26
對於喜好以開放原始碼為基礎的IT人員來說,通常比較偏向選擇Linux下的網站平台,主要的原因之一是認為Windows的IIS網站平台效能較差,然而真是如此嗎?其實這可真是一件天大的誤會!現在就來學會IIS網站的優化技巧,讓這個長久以來的迷思就此終結。
只要在IIS管理員介面的伺服器節點中,就能夠找到並開啟如圖5所示的「記錄」頁面。在此可以決定要以「伺服器」還是「站台」為單位來建立記錄檔,然後設定記錄檔的儲存路徑以及排程。


▲圖5 進行IIS記錄設定。

若希望記錄檔中只要顯示特定的某些欄位值,則按下〔選取欄位〕按鈕來開啟「W3C記錄欄位」頁面,如圖6所示。此範例為預設記錄欄位,為了讓其記錄的內容更加簡潔,可以考慮只勾選較具參考意義的欄位,例如日期、時間、用戶端IP位址、使用者名稱、伺服器連接埠以及URI查詢。


▲圖6 勾選W3C記錄欄位。

圖7所示是一個正常的IIS網站記錄檔內容範例,一般來說,如果是遭受攻擊的網站記錄檔內容,就會有一大串嘗試執行某些特定指令檔的敘述。過去最典型的就是使用「cmd /c」命令參數來藉由網站服務的安全漏洞取得管理人員的權限,不過這種做法在現今的Windows作業系統已經起不了作用,尤其是Windows Server 2008以後的版本。


▲圖7 IIS網站記錄範例。

另一種常見的分散式阻斷式攻擊(DDoS),也是黑客常用來癱瘓網站服務的方式,在IIS中只要安裝與啟用「Dynamic IP Restrictions」功能元件即可解決,它不僅能夠自動封鎖使用攻擊的來源IP位址,還會把被封鎖的IP位址記錄在W3C的記錄檔內。

對於IIS網站記錄檔的管理,除了可以設定產生的排程以及單檔的大小限制之外,實務上可能會希望可以自動刪除一些較舊的記錄檔,以避免有限的硬碟空間被塞爆。方法很簡單,只要使用Windows Server 2012 R2內建在「系統管理工具」中的「工作排程器」,然後加入一個排程工作,在每一天半夜去執行以下命令參數即可:


Forfiles命令是系統所內建,其中的/p參數表示指定路徑,/s參數表示包含旗下所有的子目錄,/d參數則表示多久之前的檔案,/m參數代表檔案類型,而/c參數用於相對所要執行的命令提示列與刪除指令。

提升IIS網站應用程式運行效能

將網站架設在Windows Server 2012 R2的IIS管理平台上,不僅能讓系統人員輕鬆管理,更重要的是還能透過前面所介紹過的幾種校調方法,來提升系統的運行效能。進一步還可以深入到IIS的運作核心,來調整更多的細節參數,讓大流量的網站回應速度更快更順暢。

在IIS管理主控台中的每個站台,都可設定一個專屬或共用的應用程式集區,而所謂的應用程式集區主要是用來配置網站的資源使用,可從應用程式集區的節點頁面,開啟任一個應用程式集區的「進階設定」頁面。

如圖8所示,在此可以限制該集區所能夠使用的CPU資源百分比,以及設定當超過指定配額時的處理動作,例如選擇刪除相對執行中的w3wp執行程序。在記憶體控管上,則同樣可以設定專用記憶體以及虛擬記憶體的大小限制。


▲圖8 應用集區進階設定。

在「處理序模型」區域內,如圖9所示可以自訂要求服務所允許的最大工作者處理序數,一般建議將此設定值配置成與伺服器實體的CPU核心數一樣,如此將有助於多核心同時處理大量工作階段的效率。但必須注意的是,如果目前網站工作階段(Session)之儲存,不是儲存在伺服器或資料庫內,將會導致不同工作階段彼此間的通訊問題。


▲圖9 調整處理序模型。

提升網站應用程式影像與CSS設計的效能

透過調整以下幾項IIS內建功能,就能夠加速用戶端載入網頁的速度,以及提升網頁中影像與CSS設計的載入效能。首先,建議在擁有四核心以上的CPU主機上,加裝網頁伺服器(IIS)兩大效能功能元件:「靜態內容壓縮」與「動態內容壓縮」,如圖10所示。


▲圖10 安裝IIS伺服器角色。

「靜態內容壓縮」主要能夠讓IIS網站更有效地處理靜態網頁內容的回應速度,且不會讓CPU資源效能變差。「動態內容壓縮」則相對適用在針對動態網頁內容的壓縮處理,當現行的CPU資源平均負載並不高時,可以善用此功能讓IIS網站的運行效能更佳。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!