商業(yè)源碼熱門下載www.html.org.cn
本白皮書提供了關(guān)于不同報(bào)表服務(wù)實(shí)現(xiàn)架構(gòu)中可伸縮性的相關(guān)內(nèi)容。也提供了一些基于使用microsoft sql server reporting services完成您自己的性能測(cè)試的指導(dǎo)方針、建議和提示。
簡(jiǎn)介
microsoft® sql server™ reporting services是一個(gè)報(bào)表平臺(tái),包括可擴(kuò)展和可管理的中央管理報(bào)表服務(wù)器和可擴(kuò)展的基于web、桌面的報(bào)表交付。報(bào)表服務(wù)是微軟綜合商業(yè)智能平臺(tái)的重要組成部分。對(duì)于許多組織,通過(guò)報(bào)表來(lái)交付信息是一個(gè)非常重要的日常商務(wù)環(huán)節(jié)。因此,報(bào)表性能必須是一致的、可預(yù)見的。隨著報(bào)表數(shù)據(jù)的增加,組織必須能夠增加報(bào)表能力,以一種可預(yù)見的、成本低廉的方式。
關(guān)于該文檔
該文檔主要用來(lái)幫助客戶和合作伙伴,在數(shù)據(jù)量增加的情況下,如何最好的計(jì)劃、優(yōu)化和擴(kuò)展他們的報(bào)表服務(wù)執(zhí)行。以下是本文的主要內(nèi)容:
◆不同硬件配置的性能和擴(kuò)展性,如scaling out 和scaling in
◆報(bào)表緩存和文件系統(tǒng)存儲(chǔ)對(duì)性能的影響
◆優(yōu)化報(bào)表服務(wù)的最佳實(shí)踐
◆進(jìn)行性能測(cè)試的建議
盡管該文章是寫microsoft sql server 2005 reporting services,但是大多數(shù)的信息對(duì)于早期的版本也同樣適用。
先決條件
該白皮文檔并不打算祥細(xì)的講述報(bào)表服務(wù)。對(duì)于一些細(xì)節(jié)的信息,可以到http://www.microsoft.com/sql/reporting/網(wǎng)站上查閱。除了報(bào)表服務(wù)之外,該文檔假設(shè)讀者對(duì)以下內(nèi)容已經(jīng)熟悉:
◆microsoft sql server
◆internet information services (iis)
◆microsoft .net 框架
這些信息在msdn站點(diǎn)上可以查閱http://msdn.microsoft.com。
概述
reporting services是一個(gè)綜合服務(wù)平臺(tái)的web的報(bào)表,用于創(chuàng)建、管理和交付傳統(tǒng)的紙張報(bào)表,同時(shí)具有交互性,。當(dāng)執(zhí)行報(bào)表時(shí),reporting services平臺(tái)執(zhí)行如下步驟:
◆重新得到報(bào)表數(shù)據(jù)
◆根據(jù)報(bào)表指示和報(bào)表定義來(lái)處理數(shù)據(jù)
◆用特定的格式來(lái)顯示報(bào)表
reporting services也執(zhí)行其他的任務(wù)來(lái)支持報(bào)表處理,如管理和處理訂閱,管理和處理快照和緩存請(qǐng)求,和服務(wù)報(bào)表管理請(qǐng)求。
reporting services中的工作主要有三部分:
◆用戶可以在線交互式的訪問(wèn)已發(fā)布的報(bào)表
◆通過(guò)訂閱將預(yù)訂的和事務(wù)驅(qū)動(dòng)的報(bào)表以email或者文件共享的形式交付給用戶
◆通過(guò)在線用戶實(shí)時(shí)地創(chuàng)建和自動(dòng)的執(zhí)行報(bào)表
本文的重點(diǎn)在第一部分,用戶可以在線交互式的訪問(wèn)已發(fā)布的報(bào)表。該功能對(duì)于大多數(shù)用戶來(lái)說(shuō)是非常感興趣的。訂閱交付有可預(yù)訂的優(yōu)點(diǎn),用戶可以隨時(shí)隨地的進(jìn)行控制。交互式報(bào)表更難進(jìn)行計(jì)劃,因?yàn)榇蠖鄶?shù)依賴于報(bào)表的大小和復(fù)雜度,并發(fā)用戶的多少和報(bào)表顯示的格式。用戶在應(yīng)用交互式報(bào)表時(shí),對(duì)系統(tǒng)響應(yīng)速度也有較高的期待。
伴隨著sql server 2005 reporting services的出現(xiàn),終端用戶可以通過(guò)新的報(bào)表生成器工具交互式的創(chuàng)建和執(zhí)行報(bào)表。實(shí)時(shí)報(bào)表創(chuàng)建的額外負(fù)荷難于進(jìn)行量化,因?yàn)檫@取決于用戶想做什么和如何有效地做,實(shí)時(shí)報(bào)表的量化將在下一版本文件中進(jìn)行講述。本文主要包括一般的性能指導(dǎo)說(shuō)明,創(chuàng)建交互式報(bào)表的負(fù)荷和在不同配置上進(jìn)行測(cè)試。同時(shí),最后的性能數(shù)據(jù)也取決于你自己的工作環(huán)境,你需要自行進(jìn)行性能測(cè)試。本文中的圖片和結(jié)果主要為了說(shuō)明在不同配置上可能出現(xiàn)的擴(kuò)展特征。
可擴(kuò)展性vs可靠性
系統(tǒng)的可擴(kuò)展性是很難定義的,因?yàn)閷?duì)于不同的人有著不同的度量標(biāo)準(zhǔn)。容易引起混亂的是可擴(kuò)展性和可靠性,它們常出現(xiàn)在同一文章中。可靠性對(duì)于任何的系統(tǒng)配置都是一個(gè)重要的考慮因素,它的存在或多或少的影響到了可擴(kuò)展性。在本文中,可擴(kuò)展性定義為:一種系統(tǒng)能力,能夠在不改變系統(tǒng)的基本設(shè)計(jì)和構(gòu)架的基礎(chǔ)上支持系統(tǒng)工作量的增加。理想地,假如增加了系統(tǒng)資源,你應(yīng)該增加相同比例的系統(tǒng)能力來(lái)處理更多的工作量。
這可能有點(diǎn)太直覺(jué)了,達(dá)到“準(zhǔn)線形”的擴(kuò)展性是非常困難的。在實(shí)際中,系統(tǒng)所需的能力并不能很好的滿足線形增長(zhǎng)。這是因?yàn)楣芾怼f(xié)作和通信成本的超額也會(huì)在不同系統(tǒng)部件之間發(fā)生。系統(tǒng)可靠性是基于細(xì)微的不同看法。系統(tǒng)的可靠性是指“能夠順利地處理工作量增加,沒(méi)有出現(xiàn)任何失敗”。另外,當(dāng)系統(tǒng)增加工作量時(shí),可靠的系統(tǒng)應(yīng)該能夠不間斷或者不同時(shí)停止工作。性能的退化也應(yīng)該是一個(gè)平滑的過(guò)程。雖然,在壓力過(guò)大時(shí),任何系統(tǒng)都可能變得無(wú)效,但是對(duì)于可靠的系統(tǒng)卻能夠從這些事故中進(jìn)行恢復(fù)。對(duì)報(bào)表服務(wù)進(jìn)行成功的能力計(jì)劃重點(diǎn)是找到工作負(fù)荷和系統(tǒng)能夠平滑處理的工作量,創(chuàng)建可靠的系統(tǒng)來(lái)滿足擴(kuò)展需求。
向上擴(kuò)展 vs 向外擴(kuò)展
reporting services的可擴(kuò)展性設(shè)計(jì)使用戶可以按照自己的意愿在單個(gè)服務(wù)器或者多個(gè)服務(wù)器上部署部件。用戶開始用reporting services時(shí)經(jīng)常問(wèn)到“是買一個(gè)大服務(wù)器(scale-up)還是買一個(gè)小的服務(wù)器(scale-out)”。本文將描述這些可擴(kuò)展性特性,來(lái)幫助你解決這個(gè)問(wèn)題。
一種向上擴(kuò)展(scale-up)的方法是“利用大的、均勻的、多處理器的服務(wù)器來(lái)提供額外的能力”。這種方法的優(yōu)點(diǎn)是“相對(duì)于scale-out,它可以提供一種簡(jiǎn)單的配置和管理過(guò)程”。scale-up同時(shí)也是sql serve關(guān)系引擎和分析服務(wù)的擴(kuò)展方法。
向外擴(kuò)展(scale-out),是企業(yè)版reporting services的一種配置,大多數(shù)用戶都喜歡用這種方法。重要的是,scale-out能完成如下工作:
◆使用戶可以根據(jù)需要增加或者移除能力
◆提供一種可接受的、可管理的、可擴(kuò)展的方式來(lái)增加和移除能力
◆允許繁重的工作量在許多日用服務(wù)器上進(jìn)行平衡
◆提供了一種內(nèi)部錯(cuò)誤的容許度
如果你想采用scale-out配置來(lái)部署reporting services,注意多報(bào)表服務(wù)器之間的協(xié)作,使每個(gè)訪問(wèn)單個(gè)報(bào)表服務(wù)器的目錄安裝在一個(gè)本地或遠(yuǎn)程的sql server關(guān)系數(shù)據(jù)庫(kù)。對(duì)于細(xì)節(jié)的信息請(qǐng)查看http://www.microsoft.com/sql/reporting/ 和http://technet.microsoft.com/sql.
報(bào)表服務(wù)組件
為了更好的理解可擴(kuò)展性,我們首先來(lái)了解一下報(bào)表服務(wù)的體系結(jié)構(gòu),如下圖1所示,還有各種組件。

圖1:報(bào)表服務(wù)體系結(jié)構(gòu)
報(bào)表服務(wù)可以分解為邏輯上的三層,如下表1所示:
表 1
| 組件 | 功能 | 
| 報(bào)表服務(wù)器 | 一個(gè)web服務(wù),做如下事情:· 處理soap 和url 請(qǐng)求· 處理報(bào)表,包括執(zhí)行查詢,檢查表達(dá)式,產(chǎn)生輸出格式· 提供快照和報(bào)表緩存管理· 支持并加強(qiáng)安全策略和權(quán)威性報(bào)表服務(wù)器同時(shí)提供windows服務(wù),可以負(fù)責(zé)預(yù)訂和批處理操作,本文對(duì)此不作細(xì)述。 | 
| 報(bào)表服務(wù)器 目錄 | 以下兩種sql server數(shù)據(jù)庫(kù)構(gòu)成目錄:· reportserver包含報(bào)表內(nèi)容信息,有報(bào)表定義、報(bào)表元數(shù)據(jù)、數(shù)據(jù)源定義、快照和歷史數(shù)據(jù)。它存儲(chǔ)了安全設(shè)置,賬戶信息,預(yù)訂信息和交付設(shè)置。· reportservertempdb里面包含的內(nèi)容必須支持會(huì)話管理和報(bào)表的緩存數(shù)據(jù)。這些目錄能夠駐留在同一物理系統(tǒng)如報(bào)表服務(wù)器,或者單個(gè)的系統(tǒng)上(遠(yuǎn)程目錄)。 | 
| 客戶應(yīng)用程序 | 客戶應(yīng)用程序通過(guò)soap web服務(wù)和url請(qǐng)求來(lái)訪問(wèn)服務(wù)器。報(bào)表管理工具和報(bào)表查看器應(yīng)用程序是客戶應(yīng)用程序,它們被包含在報(bào)表服務(wù)中。microsoft® visual studio® 2005提供了報(bào)表查看器(report viewer),用來(lái)控制嵌入在客戶端的報(bào)表。報(bào)表創(chuàng)建工具(report builder)是實(shí)時(shí)報(bào)表創(chuàng)建的權(quán)威工具。許多第三方軟件賣主也提供了他們自己的客戶端應(yīng)用程序。 | 
擴(kuò)展規(guī)范
本節(jié)描述了報(bào)表服務(wù)的基本配置選項(xiàng),它們?nèi)绾斡绊懶阅芎蛿U(kuò)展性。本節(jié)目的是幫助用戶學(xué)習(xí)一種有效的報(bào)表服務(wù)配置和負(fù)荷需求,并回答如下問(wèn)題:
◆你是否需要考慮把目錄部署到遠(yuǎn)程服務(wù)器上?
◆向上擴(kuò)展報(bào)表服務(wù)器和增加額外的報(bào)表服務(wù)器那個(gè)更好?
◆對(duì)于你的4-處理器報(bào)表服務(wù)器,什么配置是最好的?
雖然微軟在不同的配置上所進(jìn)行的測(cè)試導(dǎo)致了特定的報(bào)表工作量,實(shí)際的性能需求將依賴于你工作環(huán)境中的許多因素。包括如下因素:
◆并發(fā)用戶的數(shù)量
◆報(bào)表產(chǎn)生的大小和復(fù)雜度
◆按需報(bào)表和訂閱報(bào)表的產(chǎn)生
◆實(shí)況和緩存報(bào)表的產(chǎn)生
以下章節(jié)的測(cè)試結(jié)果被用來(lái)決定各種不同配置的相對(duì)性能和可擴(kuò)展性特征。注意一些原始的規(guī)則如每秒查看的頁(yè)數(shù),在不同的環(huán)境中將有所不同。主要關(guān)注像在環(huán)境中對(duì)資源進(jìn)行分布處理或者添加資源所帶來(lái)的相對(duì)改進(jìn)。后一章節(jié)提供了創(chuàng)建自己性能基線的指導(dǎo)。
本地vs遠(yuǎn)程配置
微軟已經(jīng)測(cè)試了兩個(gè)本地配置,運(yùn)行報(bào)表服務(wù)器和它的在單一的服務(wù)器上的目錄。

圖2:本地目錄實(shí)施
在本地配置中,sql server關(guān)系型數(shù)據(jù)庫(kù)將和報(bào)表服務(wù)競(jìng)爭(zhēng)有效的機(jī)器資源。如果你有充足的資源,那就沒(méi)有什么問(wèn)題了。
你可能考慮設(shè)置最大的內(nèi)存和最多數(shù)量的處理器供sql server數(shù)據(jù)庫(kù)引擎使用,目的是為了減少和報(bào)表服務(wù)的競(jìng)爭(zhēng),更多的信息請(qǐng)看附錄a。客戶也選擇如圖2所示的配置,因?yàn)檫@僅僅需要sql server許可。
相反的,遠(yuǎn)程目錄實(shí)現(xiàn)如圖3所示,通過(guò)兩個(gè)物理服務(wù)器(報(bào)表服務(wù)引擎和遠(yuǎn)程目錄主機(jī))來(lái)延伸報(bào)表服務(wù)組件。

圖3:遠(yuǎn)程目錄實(shí)現(xiàn)
遠(yuǎn)程配置消除了機(jī)器資源之間的競(jìng)爭(zhēng)。然而,你必須在報(bào)表服務(wù)器和目錄服務(wù)器之間提供充足的網(wǎng)絡(luò)寬帶
向上擴(kuò)展和向外擴(kuò)展
在你拆分目錄到其他的系統(tǒng)之后,你可以選擇通過(guò)增加處理器來(lái)向上擴(kuò)展報(bào)表服務(wù)器,或者通過(guò)增加機(jī)器來(lái)向外擴(kuò)展。圖4描述了一種采用多報(bào)表服務(wù)器來(lái)訪問(wèn)單個(gè)目錄的向外擴(kuò)展配置。

圖4:采用多報(bào)表服務(wù)器來(lái)訪問(wèn)單個(gè)目錄的向外擴(kuò)展配置
向外擴(kuò)展的配置典型的是利用一個(gè)從任何報(bào)表服務(wù)器節(jié)點(diǎn)分離出來(lái)的遠(yuǎn)程關(guān)系型數(shù)據(jù)庫(kù)服務(wù)器來(lái)管理目錄。它不可能將目錄存儲(chǔ)在任何一個(gè)報(bào)表服務(wù)器節(jié)點(diǎn),這種配置是不值得推薦的,因?yàn)閿?shù)據(jù)庫(kù)服務(wù)器將消耗報(bào)表服務(wù)器的資源。
一個(gè)4-處理器,向外擴(kuò)展的配置使用2-處理器報(bào)表服務(wù)器訪問(wèn)一個(gè)遠(yuǎn)程目錄。一個(gè)8-處理器,向外擴(kuò)展的配置使用4個(gè)2-處理器報(bào)表服務(wù)器。因此,向外擴(kuò)展的配置增加的不僅僅是處理器,還有內(nèi)存和網(wǎng)絡(luò)互聯(lián)。
本地和遠(yuǎn)程目錄性能比較
在可擴(kuò)展性計(jì)劃中,第一個(gè)想法就是考慮報(bào)表服務(wù)器目錄是采用本地的還是遠(yuǎn)程的模式。
在本地模式中,同一個(gè)物理機(jī)器管理了報(bào)表服務(wù)器和報(bào)表服務(wù)器目錄。目錄獨(dú)立于報(bào)表數(shù)據(jù)的源數(shù)據(jù)庫(kù),報(bào)表數(shù)據(jù)一般駐留在不同的服務(wù)器上。
單機(jī)配置是最簡(jiǎn)單的實(shí)現(xiàn),也是最經(jīng)濟(jì)的方式,但是有少許缺點(diǎn)。最重要的是,移動(dòng)目錄到遠(yuǎn)程服務(wù)器是使用向外擴(kuò)展配置的第一步。在隨后的章節(jié)中將進(jìn)行討論。
為了回答采用增加處理器到本地的方式和拆分目錄方式那種方式更好,將采用如下的系統(tǒng)配置來(lái)進(jìn)行測(cè)試:
◆2-處理器報(bào)表服務(wù)器,本地目錄(2-proc local)
◆2處理器報(bào)表服務(wù)器,遠(yuǎn)程目錄(2-proc remote)
◆4-處理器報(bào)表服務(wù)器,本地目錄(2-proc local)
◆4-處理器報(bào)表服務(wù)器,遠(yuǎn)程目錄(4-proc remote)
這些測(cè)試結(jié)果顯示了一些比較有意義的事實(shí)。
◆利用2-處理器系統(tǒng),對(duì)于少許的負(fù)荷,本地和遠(yuǎn)程的執(zhí)行結(jié)果大致相似。
◆4-處理器本地系統(tǒng)比2-處理器本地系統(tǒng)在每秒的請(qǐng)求中呈現(xiàn)較好性能;但也不是4-處理器遠(yuǎn)程系統(tǒng)性能的兩倍。
表2顯示了四種配置在峰值能力時(shí)的比較結(jié)果,峰值能力是性能開始下降到高于30秒極限的會(huì)話最大數(shù)量。
表2
| avg req / sec | peak sessions attained | |
| 2 proc (local) | baseline | baseline | 
| 2 proc (remote) | -10% | baseline | 
| 4 proc (local) | 53% | 17% | 
| 4 proc (remote) | 100% | 117% | 
從2-處理器本地到2-處理器遠(yuǎn)程的實(shí)現(xiàn),事實(shí)上對(duì)會(huì)話峰值沒(méi)有什么影響。在吞吐量方面有細(xì)微的下降,因?yàn)閿?shù)據(jù)在網(wǎng)絡(luò)之間的轉(zhuǎn)移。
在高工作量時(shí),加倍本地目錄實(shí)現(xiàn)的處理器(2-processor local 到 4-processor local)并不能實(shí)質(zhì)性的加倍可用資源。它僅僅在到達(dá)峰值會(huì)話時(shí)提供了細(xì)微的增加和在每秒的請(qǐng)求時(shí)的53%的改進(jìn)。
然而,在遠(yuǎn)程目錄配置上,使處理器數(shù)由2變?yōu)?可以帶來(lái)線性的增加。采用4處理器時(shí),請(qǐng)求數(shù)量峰值比會(huì)話峰值加倍的多。
關(guān)鍵點(diǎn)
◆假如你運(yùn)行一個(gè)2-處理器本地系統(tǒng),拆分目錄到其他的服務(wù)器將導(dǎo)致整個(gè)系統(tǒng)性能的細(xì)微改變。
◆拆分目錄不能給管理和監(jiān)控帶來(lái)什么好處,因?yàn)橄到y(tǒng)不能在報(bào)表服務(wù)器和數(shù)據(jù)庫(kù)處理之間分配資源。
◆假如你運(yùn)行一個(gè)4-處理器的本地系統(tǒng),拆分目錄到其他服務(wù)器將出現(xiàn)明顯的性能改善。
◆對(duì)于擴(kuò)展,遠(yuǎn)程目錄實(shí)現(xiàn)的第一步是采用向外擴(kuò)展配置
向上擴(kuò)展
本節(jié)主要關(guān)注通過(guò)在遠(yuǎn)程目錄配置中增加處理器(scaling up)來(lái)增加可用的能力和性能。在這情形下,向上擴(kuò)展的配置從2-處理器擴(kuò)展到4-處理器。在隨后的測(cè)試中,當(dāng)響應(yīng)時(shí)間超過(guò)了預(yù)定的極限時(shí)間30s時(shí)將達(dá)到極限,30s一般認(rèn)為是用戶難于容忍的響應(yīng)時(shí)間。
表3
| average requests / second | maximum # sessions | page views per minute | |
| 2 proc (remote) | 10.71 (baseline) | 600 (baseline) | 604 (baseline) | 
| 4 proc (remote) | 23.91 (123%) | 1300 (117%) | 1327 (120%) | 
每秒的平均請(qǐng)求數(shù)
在大量用戶使用時(shí),一個(gè)4-處理器系統(tǒng)比2-處理器的遠(yuǎn)程系統(tǒng)能夠處理明顯更多的請(qǐng)求。加倍在遠(yuǎn)程目錄中的可用處理器數(shù)目比加倍每臺(tái)服務(wù)器平均請(qǐng)求有細(xì)微的增加。
會(huì)話的峰值
一個(gè)4-處理器遠(yuǎn)程配置能夠支持比加倍一個(gè)2-處理器會(huì)話峰值更多的遠(yuǎn)程實(shí)現(xiàn)。
每分鐘的頁(yè)面查看
每分鐘的頁(yè)面查看數(shù)折射了所能提供的頁(yè)面產(chǎn)生能力。當(dāng)遠(yuǎn)程目錄實(shí)現(xiàn)中的處理器由2個(gè)提高到4個(gè)時(shí),你可以在高負(fù)荷時(shí)得到120%的頁(yè)面查看性能改進(jìn)。
關(guān)鍵點(diǎn)
◆在你拆分報(bào)表目錄到獨(dú)立系統(tǒng)之后,使處理器由2個(gè)增加到4個(gè)時(shí)本質(zhì)上是加倍了報(bào)表服務(wù)的執(zhí)行速度,而沒(méi)有降低響應(yīng)速度。
◆測(cè)試是在服務(wù)器上進(jìn)行的,沒(méi)有2個(gè)或4個(gè)處理器。大量處理器系統(tǒng)的優(yōu)化在以后的測(cè)試中將進(jìn)行檢查。
向外擴(kuò)展
本章節(jié)主要關(guān)注向外擴(kuò)展配置的性能和能力情況。在微軟的測(cè)試中,報(bào)表服務(wù)器事實(shí)上是在2-處理器遠(yuǎn)程目錄實(shí)現(xiàn)中的復(fù)制品。因此,向外擴(kuò)展的機(jī)器是2倍和4倍于所有的系統(tǒng)資源(內(nèi)存、存儲(chǔ)空間和網(wǎng)卡)還有處理器。
當(dāng)你將2-處理器遠(yuǎn)程執(zhí)行的系統(tǒng)能力與4-處理器和8-處理器向外擴(kuò)展相比較時(shí),通過(guò)向外擴(kuò)展配置提供了接近線性的擴(kuò)展。以下表格總結(jié)了2-處理器,4-處理器和8-處理器改進(jìn)的百分比。
表4
| peak page views/hr | maximum simultaneous user session | |
| 2 proc (remote) | 10.71 (baseline) | 600 (baseline) | 
| 2 x 2 proc (remote) | 23.87 (210%) | 1300 (216%) | 
| 4 x 2 proc (remote) | 45.18 (378%) | 2500 (416%) | 
比較每秒鐘的平均請(qǐng)求峰值和所支持的會(huì)話峰值,2 x 2-處理器向外擴(kuò)展配置提供了比2-處理器遠(yuǎn)程執(zhí)行的線性值更好的結(jié)果。
從2 x 2-處理器向外擴(kuò)展到 4 x 2-處理器向外擴(kuò)展并沒(méi)有提供真實(shí)的線性擴(kuò)展。而且,它不能提供明顯的能力改進(jìn),有89%的每秒請(qǐng)求改進(jìn)和92%的所支持的會(huì)話峰值改進(jìn)。
關(guān)鍵點(diǎn)
◆向外擴(kuò)展的方式提供了更好的低本高效,在不需要大量硬件投資的情況下獲得更好的能力
◆假如你期待繼續(xù)增加報(bào)表服務(wù)需求,向外擴(kuò)展是一種自行增加額外能力的彈性方式
比較向上擴(kuò)展和向外擴(kuò)展
一個(gè)直接的向上擴(kuò)展和向外擴(kuò)展的實(shí)例比較4-處理器遠(yuǎn)程目錄和向外擴(kuò)展的4-處理器。假設(shè),4個(gè)處理器駐留在同一個(gè)報(bào)表服務(wù)器里,同時(shí)向外擴(kuò)展利用2個(gè)2-處理器報(bào)表服務(wù)器。
測(cè)試結(jié)果顯示在兩種實(shí)現(xiàn)之間僅有少許差別。向外擴(kuò)展在兩個(gè)節(jié)點(diǎn)之間有8gb的內(nèi)存,4-處理器遠(yuǎn)程有4gb的內(nèi)存??紤]同等的會(huì)話數(shù)量,4-處理器系統(tǒng)的響應(yīng)時(shí)間比較均勻。4-處理器向外擴(kuò)展在響應(yīng)時(shí)間上有細(xì)微的優(yōu)勢(shì)。期待將報(bào)表服務(wù)部署在asp中。網(wǎng)絡(luò)應(yīng)用程序正好迎合了向外擴(kuò)展配置中便宜硬件組裝的優(yōu)勢(shì)。
關(guān)鍵點(diǎn)
如果你有2-處理器遠(yuǎn)程目錄實(shí)現(xiàn),需要使能力翻倍,你向上擴(kuò)展到4-處理器報(bào)表服務(wù)器或者向外擴(kuò)展到2個(gè)報(bào)表服務(wù)器都沒(méi)有用。
盡管轉(zhuǎn)移到向外擴(kuò)展配置需要你轉(zhuǎn)移到企業(yè)版的報(bào)表服務(wù),除原始能力外它有許多優(yōu)點(diǎn)。主要包括如下:
◆少量處理器的服務(wù)器比大型smp服務(wù)器要便宜得多
◆額外的機(jī)器可以利用保留內(nèi)存地址空間,而不用轉(zhuǎn)移到64位的硬件上
◆用新服務(wù)器添加能力,而不是升級(jí)已存在的服務(wù)器,可以節(jié)省停工期
◆多樣的報(bào)表服務(wù)器提供了更好的可用性,假如一個(gè)服務(wù)器失敗了,其他的服務(wù)器能夠繼續(xù)接受請(qǐng)求
◆你可以輕松的向外擴(kuò)展到6、8或者10處理器。smp服務(wù)器一般在8處理器之后出現(xiàn)低性能回報(bào)
采用64位處理器
sql server 2005報(bào)表服務(wù)支持64位處理器,包括intel itanium2處理器,amd 和intel的x64體系結(jié)構(gòu)處理器。在x64系統(tǒng)上,報(bào)表服務(wù)能夠運(yùn)行在原始的64位模式和32位wow(windows on windows)子系統(tǒng)上??偟膩?lái)說(shuō),64位系統(tǒng)運(yùn)行在同一處理器上并不能提高報(bào)表的生產(chǎn)量。但是,主要的優(yōu)點(diǎn)是用戶可以查看和導(dǎo)出更大的報(bào)表。當(dāng)處于高工作量時(shí),你可能在64位機(jī)器上會(huì)得到更好的生產(chǎn)量,因?yàn)閮?nèi)存競(jìng)爭(zhēng)會(huì)下降同時(shí)垃圾回收會(huì)更少發(fā)生。微軟并不能夠全面地測(cè)試這些平臺(tái),但會(huì)利用測(cè)試結(jié)果有計(jì)劃的更新這些文檔。
報(bào)表緩存和存儲(chǔ)
在報(bào)表服務(wù)實(shí)現(xiàn)中,在性能和能力方面一個(gè)重要的因素是“實(shí)況地從原系統(tǒng)的數(shù)據(jù)中產(chǎn)生報(bào)表還是通過(guò)利用緩存或者快照數(shù)據(jù)”。本節(jié)描述了一些選項(xiàng),和潛在的性能影響選項(xiàng)。
緩存實(shí)例
報(bào)表服務(wù)器擁有兩層緩存:
1.當(dāng)報(bào)表服務(wù)器產(chǎn)生報(bào)表時(shí),它重新從報(bào)表服務(wù)器目錄中得到報(bào)表定義,并從數(shù)據(jù)源中得到報(bào)表所需的數(shù)據(jù)。然后創(chuàng)建臨時(shí)的報(bào)表格式(存儲(chǔ)在會(huì)話緩存中),寫到reportservertempdb數(shù)據(jù)庫(kù)中。它利用這些結(jié)果,緩存實(shí)例來(lái)創(chuàng)建并匯成最后的報(bào)表。
對(duì)于每一個(gè)完全的“實(shí)況”報(bào)表,它都要重復(fù)這些步驟。它可以指導(dǎo)后續(xù)報(bào)表的請(qǐng)求,如果該報(bào)表已經(jīng)處理完了并存在緩存中。這樣就可以減少重新檢索數(shù)據(jù)和創(chuàng)建報(bào)表的時(shí)間。
2.報(bào)表服務(wù)器也會(huì)嘗試緩存輸出格式,或者內(nèi)存中的報(bào)表快照,或者文件系統(tǒng)中的臨時(shí)目錄。如果請(qǐng)求的結(jié)果在輸出緩存中被找到,它將迂回于處理和描寫步驟之間,因此將產(chǎn)生更好的性能。如果需要了解更多的關(guān)于如何決定使用何種緩存,可以參閱附錄b中的性能統(tǒng)計(jì)類。
緩存最終將會(huì)過(guò)期,導(dǎo)致重新從報(bào)表服務(wù)器中獲取新的數(shù)據(jù)。你可以根據(jù)預(yù)先確定的時(shí)間間隔來(lái)控制緩存期限,預(yù)定的(針對(duì)特定報(bào)表的或者共享的)或強(qiáng)制的期限。
緩存報(bào)表對(duì)存儲(chǔ)有影響,雖然sql server 2005報(bào)表服務(wù)能簡(jiǎn)潔地存儲(chǔ)數(shù)據(jù)同時(shí)也能夠提供數(shù)據(jù)壓縮。當(dāng)決定應(yīng)該保持多少緩存或者快照鏡像時(shí),應(yīng)該考慮如下事情:
◆當(dāng)緩存實(shí)例創(chuàng)建時(shí),查詢參數(shù)被應(yīng)用。如果你需要一個(gè)報(bào)表帶有不同的查詢參數(shù),報(bào)表服務(wù)將產(chǎn)生額外的緩存實(shí)例。
◆沒(méi)有用于查詢的報(bào)表參數(shù),可以被用來(lái)從緩存實(shí)例中創(chuàng)建不同報(bào)表版本。
報(bào)表快照
快照涉及同樣時(shí)間間隔報(bào)表格式,存儲(chǔ)在一個(gè)更為持久的狀態(tài)。比如,快照可以存儲(chǔ)在報(bào)表服務(wù)器目錄中,而不是存儲(chǔ)在reportservertempdb中。目錄也可以維持多時(shí)間間隔的版本,作為報(bào)表歷史,允許用戶在它們之間進(jìn)行選擇。
sql server 2005報(bào)表服務(wù)自動(dòng)在目錄中壓縮快照。它也可以將快照鏡像存儲(chǔ)到本地文件系統(tǒng)。以下的章節(jié)將突出利用緩存實(shí)例所帶來(lái)的性能影響,壓縮快照,和文件系統(tǒng)存儲(chǔ)。
緩存實(shí)例
一種可以改進(jìn)報(bào)表服務(wù)部署的能力和規(guī)模的方式是避免執(zhí)行依賴于實(shí)況數(shù)據(jù)的報(bào)表。你可以通過(guò)利用緩存數(shù)據(jù)來(lái)進(jìn)行。
圖5顯示了重新檢索、處理和描寫一個(gè)有150k行數(shù)據(jù)的報(bào)表,用實(shí)況和緩存數(shù)據(jù)來(lái)執(zhí)行。

圖5:150-k 行單個(gè)報(bào)表的時(shí)間計(jì)算
當(dāng)聚集時(shí),這些數(shù)據(jù)說(shuō)明了相比采用緩存,實(shí)況數(shù)據(jù)需要261%以上的時(shí)間來(lái)進(jìn)行報(bào)表服務(wù)。那些需要返回大量實(shí)況數(shù)據(jù)的報(bào)表,比采用緩存數(shù)據(jù)方式的報(bào)表需要更加多的資源。
要求用戶在系統(tǒng)使用峰值時(shí)避免運(yùn)行實(shí)況報(bào)表是不合理的。通常,用戶不能意識(shí)到運(yùn)行這些報(bào)表會(huì)給系統(tǒng)性能和其他系統(tǒng)用戶帶來(lái)影響。一些“良民”實(shí)踐使你會(huì)考慮傳輸?shù)侥愕挠脩魯?shù)來(lái)改進(jìn)系統(tǒng)能力和響應(yīng),包括如下:
◆無(wú)論何時(shí),避免使報(bào)表重新檢索,執(zhí)行大量的實(shí)況數(shù)據(jù)。用緩存數(shù)據(jù)來(lái)代替。
◆如果無(wú)法避免這種情形,至少嘗試著限制這樣的報(bào)表的運(yùn)行數(shù),尤其在高峰時(shí)間。
◆當(dāng)可以從緩存數(shù)據(jù)中生成報(bào)表時(shí),在非高峰時(shí)間內(nèi)預(yù)定這些報(bào)表來(lái)更新緩存,以避免影響其他用戶。
壓縮快照存儲(chǔ)
sql server 2005報(bào)表服務(wù)使管理人員可以自行決定快照數(shù)據(jù)存儲(chǔ)在那里,如何存儲(chǔ)。
使用快照能明顯的改進(jìn)報(bào)表性能,但是消耗了數(shù)據(jù)庫(kù)存儲(chǔ)空間。為了幫助平衡存儲(chǔ)和性能問(wèn)題,報(bào)表服務(wù)提供了壓縮選項(xiàng)。默認(rèn)的設(shè)置是壓縮快照和報(bào)表定義。你也可以關(guān)閉壓縮。
比如,在一個(gè)20千行的報(bào)表中,sql快照壓縮后減少了20%的壓縮前大小。減少的部分不僅翻譯到報(bào)表服務(wù)器目錄中的重要存儲(chǔ),而且大大的減少了報(bào)表服務(wù)器和目錄之間的通信量。
新聞熱點(diǎn)
疑難解答
圖片精選