■ 中國電力工程顧問集團東北電力設計院有限公司 王旭
筆者單位所有的辦公自動化系統(tǒng)都是基于IIS運行的,整個綜合管理系統(tǒng)包括綜合辦公、人力資源、生產管理、計劃管理、檔案管理等諸多模塊,每天平均有500-600人同時在線工作,最高同時在線人數可達千人。系統(tǒng)剛剛上線時由于模塊較少,在IE端訪問系統(tǒng)速度正常,近些年隨著系統(tǒng)中模塊數據增加,系統(tǒng)中數據量的增加,導致系統(tǒng)在訪問時出現(xiàn)卡頓現(xiàn)象,尤其檔案模塊數據量達到近百萬級別,常常出現(xiàn)頁面無法加載數據的問題,導致頁面報錯。
分析綜合管理系統(tǒng)的配置情況,代碼運行在Windows Server 2003 64位的系統(tǒng)上,數據庫服務器單獨運行。查看代碼運行服務器的任務管理器,w3wp.exe進程占用內存很大,每次出現(xiàn)卡頓現(xiàn)象,重啟IIS服務器后,系統(tǒng)會以正常速度運行。在這之前,已經對數據庫進行過優(yōu)化,分析后認為,還應對IIS的設置進行優(yōu)化。經過在網上和有關書籍上查詢IIS的優(yōu)化方法,最終整理了幾條已經在服務器上實踐過的幾個優(yōu)化方式。
IIS的Web服務擴展包括多種服務擴展,但有些擴展服務是不需要開啟的,為了提升網站性能和安全性,應當禁用多余的Web服務擴展。例如,“所有未知CGI擴展”、“所有未知ISAPI擴展”等多個服務,是在Web運行時所用不到的服務,并且這些服務還占據著IIS的運行資源,慢慢會拖垮整個站點的性能,甚至某些服務漏洞還會被木馬所利用,造成不可挽回的損失。因此,最基本的原則就是,用到哪個服務就開啟哪個服務,不需要的盡量關閉。
例如,我院的綜合管理系統(tǒng)是基于ASP.net開發(fā)的,在IIS服務擴展中只開啟了有關ASP.net的服務,其他都關閉了(如圖1)。
IIS默認支持 .asp、.cdx等8種擴展名的映射,后經用戶安裝,可以包括其他的可執(zhí)行文件擴展,例如.asa,.cer等擴展名,基本不會被程序所用到,而且這些擴展還會加重Web服務的運行負擔,并帶來一定的安全隱患。根據我院的代碼實際情況,不包括.asa、.cer等多種文件名擴展,將其刪掉(如圖2)。
Windows Server 2003操作系統(tǒng)所配置的為IIS6.0,默認情況下是開啟對于Web的訪問記錄的,這個功能開啟時會記錄很多內容,包括訪問時間、客戶端IP、鏈接訪問源、Cookies、訪問方法、用戶代理等多種信息,這種信息會占用大量的磁盤空間,對服務器的性能會有一定的影響,對于中小型的Web站點基本沒有什么用途。
但根據我院的實際情況分析,綜合管理系統(tǒng)配備了足夠的磁盤空間,而且要有足夠的訪問日志來追蹤極少數出現(xiàn)的問題和服務器運行的情況,因此這個選擇保留這個選項(如圖 3)。
IIS默認情況下,所有的站點是統(tǒng)一使用系統(tǒng)默認的應用程序池,之所以在一臺主機可以運行多個站點頁不相互產生影響,是因為IIS提供了為不同的工作進程指定不同應用程序池的功能,這些應用程序池使各個站點之間相互獨立,各自運行。
1.建立:在IIS管理器下,右鍵點擊“應用程序池”后,選擇新建應用程序池選項,在彈出的頁面中輸入新的應用程序池ID,可以以現(xiàn)有的應用程序池作為模板,也可以建新的應用程序池。建立完成后,點擊“確定”按鈕(如圖4)。
2.分配:在IIS管理器下,右鍵點擊要為其分配應用程序池的站點或是站點下的某個項目,選擇“屬性”選項,然后在屬性面板中選擇“主目錄”選項卡,在“應用程序池”選項中選擇剛剛建立的應用程序池為站點或項目分配應用程序池。
3.配置回收計劃:展開IIS管理器下應用程序池,選中剛剛建立的應用程序池,右鍵點擊選擇“屬性”選項,在彈出的頁面中配置回收工作進程的時間,根據我院午休的時間,選擇在0點和12點30時進行回收。本頁面的其他選項也可做對應的配置,但根據我院實際情況,只作了回收時間的配置。
在以上幾則配置方式中,應用程序池的建立顯得尤其重要,我院多年以前綜合管理系統(tǒng)中還沒有出現(xiàn)過多的項目,隨著業(yè)務的不斷增多,近些年增加了多個業(yè)務系統(tǒng),都運行在一臺主機中,服務器性能下降明顯。讓每個項目都具備獨立的回收機制,每個項目運行過程中互不產生影響,極大地解決了系統(tǒng)運行慢的問題,使使用人員的舒適度增加。
通過以上幾項IIS的優(yōu)化操作,我院的綜合管理系統(tǒng)運行速度有了較明顯的提升,但僅從軟件上對企業(yè)的服務器配置進行優(yōu)化還是遠遠不夠的,還需要硬件的改造。我院近些年也對部分重要的服務器進行了硬件的升級,軟硬結合的優(yōu)化配置方式才能提供最完美的性能解決方案。