為了優(yōu)化 MSIB 2.0 站點(diǎn)的性能,MSIB 開發(fā)組對(duì)以下內(nèi)容做了調(diào)查:
分析 SQL 服務(wù)器
使用高速緩存方案
調(diào)節(jié)硬件
調(diào)節(jié) IIS
橫向擴(kuò)展 Web 群
分析 SQL 服務(wù)器
優(yōu)化站點(diǎn)軟件性能和可擴(kuò)展性的第一步是分析后端 SQL 服務(wù)器的使用情況。 MSIB 項(xiàng)目組為站點(diǎn)內(nèi)的每個(gè)頁面進(jìn)行了一次 SQL Query Analyzer 追蹤。 以下是免費(fèi)文本搜索頁面的輸出結(jié)果:
EventClass TextData CPU Reads Writes Duration SPID StartTime
SQL:BatchCompleted SET NO_BROWSETABLE ON 0 0 0 0 52 2000-12-05 11:07:16.513
SQL:BatchCompleted select * from CatalogGlobal where [CatalogName] =N'ANVIL0' 0 2 0 0 52 2000-12-05 11:07:16.513
SQL:BatchCompleted SET NO_BROWSETABLE ON 0 0 0 0 52 2000-12-05 11:07:16.513
SQL:BatchCompleted SELECT A.* FROM CatalogAttributes A, syscolumns SWHERE S.id = OBJECT_ID('ANVIL0_CatalogProducts') AND A.propertyname =S.name ORDER BY A.PropertyName 15 55 0 16 52 2000-12-05 11:07:16.513
SQL:BatchCompleted EXEC sp_GetResults_for_AllColumns N'ANVIL0', N'*',N'FREETEXT (*, N''testasdf'' )', '', 1,11,1,39 32 1147 0 76 52 2000-12-05 11:07:16.530
SQL:BatchCompleted EXEC sp_CheckCatalog '*', 'ANVIL0', 'FREETEXT (*,N''testasdf'' )' 0 29 0 0 52 2000-12-05 11:07:16.607
MSIB 項(xiàng)目組的第一項(xiàng)查詢優(yōu)化措施是在追蹤分析過程中發(fā)現(xiàn)的。 MSIB 項(xiàng)目組在頁面上查找重復(fù)的查詢并減少冗余的 Select 語句。 MSIB 項(xiàng)目組很好地跟蹤了目標(biāo)的信息并對(duì)代碼重新排序,使得查詢操作只能進(jìn)行由條件調(diào)用,從而完成了這一步驟。
接下來, MSIB 項(xiàng)目組從磁盤讀取的角度確定了為昂貴的查詢。 為了簡化這些操作,MSIB 項(xiàng)目組嘗試著降低查詢操作的 I/O 復(fù)雜性。 例如,改變 Select * 語句,使其歸入隔離更好的返回子集中。
后,MSIB 項(xiàng)目組通過 SQL 服務(wù)器調(diào)節(jié)向?qū)е胤帕擞涗浵碌母櫧Y(jié)果。 該向?qū)Ыㄗh對(duì)表格索引進(jìn)行一些變更。 所有這些頁面級(jí)變更的組合降低了后端 SQL 服務(wù)器的負(fù)荷并因此改善了 MSIB 2.0 Web 站點(diǎn)的可擴(kuò)展性。
在 SQL Server 服務(wù)器上,MSIB 項(xiàng)目組保留了與性能有關(guān)的所有默認(rèn)配置。
使用高速緩存方案
提高吞吐量的下一步是利用應(yīng)用服務(wù)器中的高速緩存。 MSIB 項(xiàng)目組利用了以下的高速緩存方案以優(yōu)化 MSIB 2.0 站點(diǎn)的性能。
頁面輸出高速緩存
Microsoft .NET Framework 系統(tǒng)內(nèi)內(nèi)置了頁面輸出高速緩存。 關(guān)于 MSIB 項(xiàng)目組如何使用這種功能的詳細(xì)情況在 MSIB Developers Guide 中有所介紹,該資料隨 MSIB 2.0 提供。 這種高速緩存方案對(duì)于未經(jīng)個(gè)性化的頁面是有效的,例如那些未用個(gè)性化內(nèi)容對(duì)象(PCO)顯示 Microsoft Content Management Server (MCMS)的頁面。
MCMS 服務(wù)器的性能
Microsoft Content Management Server (MCMS) 2002 可以在縱橫兩個(gè)方向上進(jìn)行擴(kuò)展。 目前正在編寫一份關(guān)于 MCMS 部署的文件,其中討論了各種可用于 MCMS 的高速緩存方法。 在編寫完成之后,可以從以下地址得到該文件 http://go.microsoft.com/fwlink/?LinkId=15170。如需了解關(guān)于 MCMS 2002 高速緩存的更多信息,參見 MCMS 2002 Help 中的“Optimizing MCMS Site Performance”。 如需了解關(guān)于利用 MCMS 2002 SCA 設(shè)置高速緩存屬性的更多信息,參見 MCMS 2002 Help 中的“Specifying cache properties”部分。 如需了解 MCMS 性能的更多信息,參見 MCMS 主頁,地址在 http://go.microsoft.com/fwlink/?LinkId=8426.
調(diào)節(jié)硬件
在進(jìn)行性能分析的過程中,為 Web 服務(wù)器和 SQL 服務(wù)器選擇正確的硬件發(fā)揮著非常重要的作用。 此外知道如何為這些服務(wù)器選擇正確的硬件還能夠讓您為其他用戶提供相關(guān)硬件的建議。 這一部分介紹了 MSIB 項(xiàng)目組是如何為本文所述的測(cè)試選擇 SQL 服務(wù)器的。
Web 服務(wù)器
在為 Web 服務(wù)器選擇硬件的時(shí)候, MSIB 項(xiàng)目組考慮了以下幾個(gè)方面:
內(nèi)存
磁盤子系統(tǒng)
網(wǎng)絡(luò)系統(tǒng)
CPU
內(nèi)存
MSIB 項(xiàng)目組為 Web 服務(wù)器配置了較大的隨機(jī)存取存儲(chǔ)器(RAM),所配容量超出了服務(wù)器運(yùn)行任務(wù)所需的量。 為了確定服務(wù)器可以減少多少物理 RAM 內(nèi)存,之后項(xiàng)目組計(jì)算了在工作負(fù)載下服務(wù)器的大工作集。 一個(gè)典型部署所需的 RAM 數(shù)量取決于您為該部署對(duì)高速緩存和內(nèi)存的需求。 不過,在大多數(shù)情況下,1GB 的物理 RAM 已經(jīng)是足夠的了。
磁盤子系統(tǒng)
MSIB 站點(diǎn)前端 Web 服務(wù)器的磁盤子系統(tǒng)作為一個(gè)只讀設(shè)備,是用來存儲(chǔ)自舉分區(qū)和站點(diǎn)內(nèi)容的。 這一子系統(tǒng)必需要有讀/寫設(shè)備才能進(jìn)行文件分頁操作,不過如果有足夠的物理存儲(chǔ)器支持系統(tǒng)的話,這些操作都是低限度的要求了。 Web 服務(wù)器確實(shí)是利用磁盤子系統(tǒng)寫事件日志和 Web 日志的。 這種操作已經(jīng)由 Windows 2000 操作系統(tǒng)進(jìn)行了很好的調(diào)節(jié),很少需要超過一個(gè)內(nèi)存芯片才能達(dá)到所需性能的。
網(wǎng)絡(luò)系統(tǒng)
Web 服務(wù)器上的網(wǎng)絡(luò)系統(tǒng)至少應(yīng)當(dāng)包括一塊 100BaseT 的網(wǎng)卡。 要實(shí)現(xiàn)更高的安全性、可管理性和可用性,服務(wù)器應(yīng)該配備兩塊甚至三塊網(wǎng)卡。 在 MSIB 項(xiàng)目組的測(cè)試中,web 服務(wù)器的網(wǎng)路吞吐量并不足以用完一塊 100 兆位的網(wǎng)卡能力。
CPU
后,應(yīng)當(dāng)為服務(wù)器選用當(dāng)前好的 CPU 和處理子系統(tǒng)。 在可以預(yù)見到的將來,這個(gè)特別的硬件子系統(tǒng)仍將是該服務(wù)器的瓶頸。 這是因?yàn)閯?dòng)態(tài) Web 頁動(dòng)態(tài)和過程全面的性質(zhì)造成的。
確定適當(dāng)?shù)?CPU 數(shù)量是 Microsoft Server 每處理器許可計(jì)劃的一項(xiàng)要求。 要確定這一需求,需要對(duì)您的 MSIB 2.0 站點(diǎn)進(jìn)行一次 TCA 分析,在本文前面的“使用 TCA 方法進(jìn)行容量規(guī)劃”一部分對(duì)此做了介紹。
SQL 服務(wù)器
MSIB 項(xiàng)目組利用本部分介紹的指南建立起了 SQL 服務(wù)器,使之并未成為 MSIB 2.0 部署中的瓶頸。
在為 SQL 服務(wù)器選擇硬件的時(shí)候, MSIB 項(xiàng)目組考慮了以下幾個(gè)方面:
內(nèi)存
磁盤子系統(tǒng)
數(shù)據(jù)庫
內(nèi)存
大量的隨機(jī)存取存儲(chǔ)器(RAM)對(duì)于 SQL 服務(wù)器是有好處的,因此您應(yīng)當(dāng)依照數(shù)據(jù)庫的工作集權(quán)衡 RAM 的數(shù)量。 在運(yùn)行的時(shí)候測(cè)試網(wǎng)絡(luò)的輸入/輸出 (I/O)。 SQL 服務(wù)器的處理負(fù)荷將是訪問 SQL 服務(wù)器數(shù)據(jù)庫的前端服務(wù)器數(shù)量以及負(fù)荷配置文件的正函數(shù)。
磁盤子系統(tǒng)
一般情況下, SQL 服務(wù)器重要的調(diào)節(jié)選項(xiàng)是安裝物理磁盤子系統(tǒng)。 為了獲得佳性能,數(shù)據(jù)庫應(yīng)當(dāng)與它們?cè)诓煌锢眚?qū)動(dòng)器上的業(yè)務(wù)處理記錄分離開來。 您應(yīng)當(dāng)建立起所有的數(shù)據(jù)庫、業(yè)務(wù)處理記錄和 TempDB ,這樣才不致讓單個(gè)的磁盤子系統(tǒng)成為瓶頸。 在 MSIB 項(xiàng)目組的測(cè)試方案中,磁盤子系統(tǒng)并未成為一個(gè)問題。 不過,對(duì)于正在運(yùn)行中的站點(diǎn)來說,您應(yīng)當(dāng)認(rèn)真地將磁盤成本和交易聯(lián)系起來考慮,以便為增加的磁盤需求做好規(guī)劃。
數(shù)據(jù)庫
MSIB 2.0 的設(shè)計(jì)使其可以進(jìn)行橫向擴(kuò)展并為后端數(shù)據(jù)庫系統(tǒng)分區(qū)。 用于營銷、用戶配置文件管理、目錄、數(shù)據(jù)倉庫、交易、內(nèi)容和管理的數(shù)據(jù)庫可以分離開來,放到物理 SQL 服務(wù)器數(shù)據(jù)庫中。 這樣一來您能夠輕松地按照數(shù)據(jù)庫將部署系統(tǒng)分配到獨(dú)立的服務(wù)器或群集上去。 關(guān)于如何做到這一點(diǎn)的詳細(xì)介紹在隨 MSIB 2.0 附帶的 MSIB 2.0 部署指南中可以找到。
調(diào)節(jié) IIS
為了進(jìn)行本分析,MSIB 項(xiàng)目組對(duì)前端 web 服務(wù)器進(jìn)行了小限度的調(diào)節(jié)。 在默認(rèn) Web 站點(diǎn)的 Properties 頁面的 Performance 選項(xiàng)卡上,性能調(diào)節(jié)塊被改變?yōu)槊刻斐^ 100000 次命中的數(shù)值。 所有其他的設(shè)置都保持原狀。 如果您必需要在測(cè)試站點(diǎn)或?qū)嶋H站點(diǎn)中改變?nèi)魏螀?shù)的話,那么請(qǐng)每次只改變一個(gè),然后將新的結(jié)果與舊結(jié)果加以比較。
重要事項(xiàng): 對(duì)這些參數(shù)中的任何一個(gè)進(jìn)行不適當(dāng)?shù)母淖兛赡軙?huì)給站點(diǎn)管理帶來麻煩。
Web 群:MSIB 2.0 站點(diǎn)的擴(kuò)展
如果所需的 CPU P4EM 比單臺(tái)服務(wù)器所能提供的能力大,那么 Web 群將需要用到多臺(tái) Web 服務(wù)器。 出于可用性和可靠性的考慮,MSIB 項(xiàng)目組建議在任何部署中少都要使用兩臺(tái) Web 服務(wù)器。
第三部分 — MSIB 2.0 站點(diǎn)的可用性
可用性規(guī)劃和可擴(kuò)展性規(guī)劃是非常類似的兩項(xiàng)工作。 可用性規(guī)劃的第一步是要確定您的業(yè)務(wù)需求。 作為一項(xiàng)指導(dǎo),建議您重新審查一下您現(xiàn)有站點(diǎn)的行為,然后將您的站點(diǎn)與競(jìng)爭對(duì)手們的站點(diǎn)加以比較。 如需獲得各個(gè)競(jìng)爭對(duì)手的可用性和頁面等待時(shí)間等信息的列表,參見 http://www.keynote.com,地址在 http://go.microsoft.com/fwlink/?LinkId=15046。
有兩個(gè)站點(diǎn)提供了全面的 Internet 性能和一般性能指導(dǎo)性原則,它們是www.mediametrix.com ,地址在 http://go.microsoft.com/fwlink/?LinkId=15045 和“http://Nielsen-netratings.com”,地址在 http://go.microsoft.com/fwlink/?LinkId=15043。
您可以按照不同級(jí)別的可用性部署 MSIB 2.0 解決方案。 應(yīng)當(dāng)在規(guī)劃階段中確定您的 MSIB 2.0 站點(diǎn)的可用性目標(biāo)。
這一部分介紹了可用性,概述了可能會(huì)造成您的 MSIB 2.0 站點(diǎn)不可用的事件,提供了高可用性技術(shù)和建議,介紹了如何避免單點(diǎn)故障,并討論了 MSIB 2.0 企業(yè)部署的恢復(fù)模型。
本部分包括:
什么是可用性?
使站點(diǎn)不可用的三類事件
高可用性技術(shù)和建議
避免單點(diǎn)故障
MSIB 2.0 企業(yè)部署的恢復(fù)模型
確定預(yù)期的可用性