終極優化(2):使用 IIS 5.0 調整 Web服務器的藝術與科學
調整 web 應用程序 iis 5.0 對于服務靜態 html 網頁及配上默認的設置值基本就已足夠了。如果您的站點主要是靜態內容,則許多 性能 問題可能會與硬件有關。iis 5.0 為 web 應用程序提供不錯的性能,但若想獲得最佳的性能,還需要一些額外的調整。當然,不管 服
調整 web 應用程序
iis 5.0 對于服務靜態 html 網頁及配上默認的設置值基本就已足夠了。如果您的站點主要是靜態內容,則許多
性能問題可能會與硬件有關。iis 5.0 為 web 應用程序提供不錯的性能,但若想獲得最佳的性能,還需要一些額外的調整。當然,不管
服務器軟件如何增強,與 web 應用程序設計及程序代碼有關的最佳經驗方法的問題依然會存在。雖然本文沒有試圖討論調整 web 應用程序的細節,但本節仍提供一些使它們執行更快的指導及建議。在規劃及測試您的 web 應用程序時,請先考慮下列事項,然后再到實際聯機運行的服務器上執行它們。
第一,isapi 應用程序比 active server pages (asp) 應用程序執行得更快,雖然 asp 的
開發費用遠比 isapi 低。這兩種應用程序都比 cgi 應用程序執行得更快。
第二,因為靜態文件不會有動態文件才有的處理負載,或引起磁盤活動,所以您應該盡可能使用它們。除了使用靜態文件外,您的應用程序應盡可能將處理負載推到客戶端,以避免
網絡等待時間。如此也能節省服務器端的資源,并讓更新在很段時間內完成。有個常用的范例是加一個客戶端的小程序代碼,來檢查電子郵件地址組成是否正確。
另一個技巧是確定在您的實際上線運行服務器上已關閉 asp 的偵錯功能。如果啟用偵錯,則必須將 appallowde
bugging metabase 屬性設為 false。相關信息,請參閱〈附錄 1︰性能設置〉。
盡可能地為所有圖像及 html 設置「過期」標題,讓它們可以存放在客戶端的緩存中。相關信息,請參閱本文中的〈調整及疑難排除的建議〉小節。
如果 microsoft visual basic_ 對象是以 apartment 線程處理的(非 java 或大部分 c++ 對象),請從「asp 應用程序及有效期」狀態中刪除它們。
只有在必要時才使用 secure sockets layer (ssl)。使用 https 通訊協議比使用標準 http 貴很多。請確定傳送中的信息 (可能是敏感資料如信用卡號) 的價值是否值得您付出增加的費用。
安全性調整問題的相關信息,請參閱本文中的〈安全性〉小節。
進程隔離也會影響 web 應用程序的性能。iis 5.0 web 應用程序默認是在進程外的緩沖池 (中度保護) 中執行。接受進程隔離對性能的影響總比冒著服務器停機或資料遺失的風險來的安全,例如因應用程序當機而破壞它與 iis 5.0 共享的 ientinfo 進程時就會導致這些風險。有關這個主題的深入討論,請參閱本文中的〈進程隔離〉小節。
若要增進生產環境中的
數據庫驅動性能,請使用 microsoft sql server。由于 iis 及 sql server 在足夠的內存下執行的情況最好,因此請嘗試將資料庫存放在不同于 web 服務的服務器上。在這種情況下,經由網絡跨計算機通訊通常比單一計算機上的通訊還快。當 sql server 及 iis 存放在同一臺服務器上時,就會經常因為內存不足或循環不夠而導致性能降低。此外,請務必建立及維護適當的索引。如此才能最小化數據庫查詢的輸入和輸出。最后一點,請盡量多利用被存儲的過程(stored procedured)。它們比設計來執行相同工作的 asp 腳本文件所需的執行時間更少,而且更容易撰寫。
一般來說,如果您有個超過 100 行 (使用 #include 指令來計算添加文件中的程序代碼行數) 的 asp 腳本文件,請考慮建立一個 com+ 組件來提供相同的功能。如果能撰寫得很有效率,并且經過正確地的測試,則 com++ 組件可以為同一動態頁提供 20 到 30 倍處理一個腳本文件的速度。使用 #includes 測量 asp 腳本文件最簡單的方式是將擴展名從 .asp 改為 .stm,并使用您的瀏覽器開啟 .stm 檔。您的瀏覽器會顯示此 .asp 文件,以及來自該已包含文件(included file)中的程序代碼。
若要最佳化動態網絡應用程序的性能,很重要的一項工作是讓您的應用程序正式在站點上啟用前,先測試它們。執行這項工作有個很好用的工具--web application stress (
was) 工具,您可以從 microsoft web application stress tool 站點
下載它。在這個站點上還包括專為此工具提供的教學指南及
知識庫。was 也內含在 windows 2000 resource kit 附隨 cd 上。本 cd 上亦有。
測量網站服務器及應用程序所需工具的相關信息,請參閱本文中的〈用來監視及
測試服務器性能的工具〉小節。如需網絡應用程序性能及測試該性能所需工具的鏈接及參照清單,請參閱本文中的〈資源〉小節。
監視及測試服務器性能的工具
為了支持您的性能調整及測試
需求,microsoft 提供幾個工具︰有些內含在 windows 2000 及 iis 5.0 中、有些位于 windows 2000 resource kit cd中,剩下的內容則可從 microsoft 網站下載?!赶到y監視器」(先前稱為 perfmon) 內建在 windows 2000 中,它對于監視服務器的各種性能而言是必要的?!高M程及線程狀態」(pstat.exe) 會顯示所有執行中的進程及線程的狀態?!高M程樹狀目錄」(ptree.exe) 可讓您查詢進程的繼承樹狀目錄,及刪除本機或遠程計算機上的進程。這些工具都提供在 windows 2000 server resource kit 附隨 cd 上。提供在 windows 2000 resouce kit 附隨 cd 上的「http 監視工具」會監視服務器上的 http 活動,而且會在活動容量發生改變時通知您?!妇W絡監視器」是個您可以用來維持固定網絡傳輸量的 windows 2000 管理工具。它不包含在默認安裝中,不過使用 [控制面板] 的 [添加/刪除程序] 功能可以安裝它。netstat 是個指令行工具,會偵測關于服務器目前網絡連接的信息。
這些工具的中心是內建在 iis 5.0 及 windows 2000 操作系統中的「性能計數器」。開發人員也可以在他們編寫的 isapi dlls 或 com 組件中添加自定義的的「性能計數器」。這些計數器可以由以上提到的一些工具直接讀取,包括「系統監視器」及「web 應用程序壓力工具」和 wcat。其中有些計數器在本文前面已作過說明,但了解哪些會關系到您的監視及測試需求是很重要的。
「系統監視器」是一個在web服務器上建立性能基準,并監視您對軟硬件所作的任何改變,對性能將產生哪些影響的最重要工具?!赶到y監視器」提供一個用戶接口,讓您在監視或記錄時能看見性能計數器的指數。它也能讓您以圖形方式記錄計數器活動,并設置將出現在 [事件查看器] 中的警告?!赶到y監視器」提供系統中每一計數器的記錄。
「web 應用程序壓力」工具是專門為了仿真多個瀏覽器同時向一個網站送出網頁請求而設計的。您可以使用這個工具來收集關于 web 應用程序性能及穩定性的信息,以及服務器執行狀況的信息。這個工具可以仿真利用少數的客戶端機器向 web 服務器送出大量的請求時的狀態。其目的是為了建立一個與生產環境盡可能相似的環境。如此才能讓您在將 web 服務器及應用程序部署到聯機運行的服務器上之前,先找出并消除其中存在的問題。
以上任一工具的相關信息,請參閱內含在 windows 2000 resource kit 中的聯機iis 5.0 文件。指向其它信息來源的鏈接則內含在本文的〈資源〉小節中。
原文轉自:http://www.kjueaiud.com