SQL Server 2005延展性和效能的計劃(2)

來源:互聯網
上載者:User

  檔案系統儲存

  對於快照儲存的其他選項是使用檔案系統儲存。這樣的設定並不影響SQL壓縮設定,因為這些資料存放區在檔案系統中。

  檔案系統快照儲存也適合遠程目錄和向外擴充的報表格服務部署。當檔案系統儲存可用時,快照資料被存留到報表伺服器的本地檔案系統中。這使得報表伺服器能夠避免到目錄上走彎路,以支援會話和報表請求。

  你可以控制檔案系統的使用,通過改變在RSReportServer 中的WebServiceUseFileShareStorage的值。在config file上,開啟檔案系統,改變值如下所示:

< Add Key="WebServiceUseFileShareStorage" Value="true" / >

  將key的值改為“false”時,表示關掉檔案系統。

  注意,在預設情況下,檔案系統儲存快照資料到檔案系統的目錄:C:Program FilesMicrosoft SQL ServerMSSQLMSSQL.instanceReporting ServicesRSTempFiles. CleanupCycleMinutes,位於RSReportServer內。config file控制如何頻繁的無用檔案系統資料應該被移除。應該注意系統檔案夾的準確的儲存需求,以避免超出儲存極限。

  如果報表伺服器使用本地的目錄來代替遠程目錄,那麼使用檔案儲存體就沒有什麼意義了。快照資料已經儲存在SQL Server關係型資料庫中,該資料庫是高度最佳化來執行資料存放區和重新檢索的。利用檔案系統儲存來配置一個本地目錄系統將引入非必要的儲存冗餘和快照管理。

  壓縮和檔案系統儲存的效果

  微軟在4-處理器遠程系統上測試了壓縮和檔案系統快照儲存的效果。兩種技術在重負荷時都可以增加系統的能力。儘管壓縮增加了處理器的工作量,但是它也能減少報表伺服器和目錄之間的通訊量。

  表 5

  Avg Req / Sec

  % of baseline

  Page Views/Hr

  % of baseline

  Peak sessions attained

  % of baseline

  No compression

  Baseline

  Baseline

  Baseline

  SQL compression

  Baseline

  109%

  Baseline

  File System storage

  126%

  129%

  113%

  檔案系統儲存讓你支援更多的使用者會話數,而不用降低回應時間。很明顯,檔案系統設定提供了最好的擴充和能力。在測試一個4-處理器的遠程目錄系統中,當開啟快照資料的檔案系統時,能夠支援多於13%的並發使用者會話數量。

  關鍵點

  ◆你可以增加現有系統的虛擬能力,通過使用更多的緩衝執行個體和快照代替實況報表。

  ◆對於高數量的報表環境,利用檔案系統快照在向外擴充和遠程伺服器實現中提供最高可能的能力水平和回應時間。

  效能最佳化的最佳實務

  本節主要概述了工作指南和最佳的能力計劃和效能最佳化實踐。

  選擇配置

  回顧向上擴充和向外擴充指南,就報表能力而言有一個系統配置譜變得越來越清晰了。

  在該譜的最低端是帶有本地目錄的2-處理器報表伺服器。在最高端是向外擴充的報表伺服器,它提供了可擴充的能力和效能。儘管本文的測試僅僅包含了向外擴充的配置,4個2-處理器的報表伺服器和一個遠程目錄,向外擴充能夠很容易地變大。

  在這兩種選擇之間,你可以使目錄位於遠程,增加處理器到一個本地實現或者遠程實現,同時在Web場方法的單個系統中進行拆分處理。

  為了給你的工作環境選擇恰當的配置,首先要求識別需要的特定效能需求。以下是一些簡單的指導:

  ◆如果你的系統能夠提供更多的記憶體,就添加一些。這是因為記憶體消耗是你第一個會遇到的瓶頸。

  ◆如果你考慮擴充性並運行在本地目錄上,第一件需要做的事情是使目錄分布到獨立的伺服器上。僅僅通過拆分目錄,你可以獲得明顯的在效能方面的擴充性,通過增加處理器也可以提高負荷。

  ◆向上擴充和向外擴充都是一種好的方法對於達到4處理器的伺服器。超過這個數,向外擴充可能是最安全和最可伸縮的方法。大的SMP系統還沒有完成測試。

  在向外擴充的配置的向外擴充讓你能夠保持一定的處理,如即時報表的設計和預訂報表操作,而不受互動的妨礙。比如:

  ◆採用一個特定的報表伺服器作為前端伺服器來處理所有的報表建立請求,使其他的伺服器有空處理互動式報表。

  ◆採用一個或者多個報表伺服器來處理有序的訂閱或者事件驅動報表的產生。

  一般的效能最佳化技巧

  由於報表伺服器目錄是由SQL Server來管理,如果你懷疑資料庫效能問題,建議最佳化SQL Server資料庫的效能。這可能包括用來建立報表的來源資料庫或者用來支援所有報表格服務執行的目錄資料庫。你可以在http://www.microsoft.com/technet/找到最佳化SQL Server資料庫的資訊,在“The Data Tier: An Approach to Database Optimization”裡;和線上的SQL Server書的效能評估章節裡。

  以下是一些常用的效能最佳化技術,使用報表格服務時,當把它們記下。

  ◆最佳化你的報表查詢。通常,大量的報表執行時間花費在執行查詢和重新檢索結果上。假如你使用SQL Server,像Query Analyzer 和 Profiler工具可以協助你最佳化查詢。同時,資料庫Tuning Advisor能建議更好的資料庫索引。你應該考慮通過流量分析服務來增加效能。

  ◆如果你不需要報表資料,請不要檢索它。使用資料庫操作,如過濾、分組和聚集可以減少大量的要求在報表中處理的資料,為此也可以改進效能。

  ◆使你的報表大小和複雜性適度。很少的使用者真正希望看到1000頁的報表。假如你需要處理一個大的報表,請尋找一些方法使它們變成小部分來進行處理。

  ◆如果效能非常差即使對於單個使用者,檢查ASP.NET類別中的應用程式重啟計數器。一些防毒軟體被認為“接觸”設定檔,因此導致擴張的應用程式定義域在報表伺服器Web服務上重啟。更多資訊,請查閱http://support.microsoft.com/上的關於抗病毒和ASP.NET的文章

  ◆假如在第一次Web服務訪問時效能很慢,一段時期都沒有反應,在IIS管理器中使在效能tab上的空閑time-out為無效。

  ◆如果可能的話,從緩衝或者快照資料中執行報表,而不是實況資料。

  ◆在非峰值期間,限制非必要的幕後處理,避免和線上使用者競爭資源。

  ◆如果你的報表伺服器有4GB記憶體,記得設定3GB 轉換在C:oot.ini上,以便應用程式處理時能用到。

  ◆常規任務如清理報表格服務中的會話將會變得非常耗資源,如果執行時使用者正在系統上。關於如何在RSReportServer. config file 上調整CleanupCycleMinutes間隔的說明在附錄A中進行討論。

  ◆在少量的資料檔案上建立報表伺服器目錄,通過把資料放到不同物理盤上的記錄檔中。這些在附錄A中將詳述。

  使用Web場

  在Microsoft® Windows® 2003 Server版上,你可以通過設定最大的工作處理器數來進行擴充。為了定位IIS的設定,開啟IIS管理工具,然後查看應用程式集區的屬性。預設時,這些命名為Reports and ReportServer。你必須首先決定是什麼應用程式集區被分配到每一個虛擬目錄上,通過右鍵點擊然後選擇選項。被分配的應用程式集區將出現在虛擬目錄tab的底部。

  當你知道那個應用程式集區在用,下一步就是開啟應用程式集區的屬性資訊。這些資訊可以通過IIS管理器來訪問。下一步,定位最大的工作處理器數。通過右鍵點擊然後選擇選項,可以看到效能tab。設定的最大工作處理器數將出現在效能tab的底部。

  在2-處理器和4-處理器系統上,增加工作處理器對能力和擴充有積極影響。

  尤其,在4-處理器系統上將最大的工作處理器數由1變為4,將使報表處理器在效能開始下降之前能夠處理更大的並發會話。在2-處理器遠程實現上改變設定比在4-處理器遠程實現上影響要小。如果你所使用的報表格服務系統,有4個以上的處理器,32位地址可能不能夠提供足夠的記憶體。你應該進行額外的測試。

  其他工作的最佳化

  儘管本白皮書主要關注互動性的工作,以下提供一些關於預定和即時報表工作的技巧。其他的指導將會在以後的白皮書中出現。

  預定報表交付效能

  預定或者訂閱的報表有這樣的優點:它可以在你的控制範圍內發生。如果你的報表格服務環境同時提供預定和按需的報表,你可以用一台單獨的報表伺服器來處理報告訂閱。你然後可以訪問像其他報表伺服器一樣的目錄,但是不要管理互動請求。用這種方法,按需報表處理不能從訂閱報錶轉移。和互動工作一樣,預定操作的擴充能夠在向外擴充的配置上增加。所有的後台操作都在目錄資料庫中排隊,每一個已連線的服務器能夠推出一個作業進行處理。

  即時報表效能

  SQL Server 2005報表格服務提供了即時的報表工具,使商業使用者可以互動建立報表。報表建立包括一個商業查詢模型,它能協助使用者構建報表,而不需要考慮太多下面的資料來源。

  在用報表建立工具時,有一個風險,那就是商業使用者在構建和運行複雜的、資源密集型報表時會消耗很多資源,這可能不僅會影響到報表伺服器,而且可能會影響源系統。

  如果你期待報表建立工具能廣泛使用,你可以採取一些步驟來保護整個系統效能,比如:

  ◆將報表建立會話應用到一台伺服器上,使那些不可預見的裝載不會影響到其他使用者的互動式報表處理。

  ◆不要讓報表建立會話直接和OLTP系統一起工作,而是,直接和產品資料來源的備份打交道。為了得到更好的效能潛力,你可以進行一些組織,比如資料庫鏡像和複製技術,或者通過整合服務來建立資料超市。通過這種方式,可以避免使未管理的報表建立影響到產品系統。

  執行自己的效能測試

  去類比現實世界的工作條件也不是一件很繁瑣的事情,花一些時間去做是非常有意義的,也是值得推薦的。許多部署出現了效能相關的問題,在實施之前沒有進行充分的壓力測試。go live。對能力和伺服器大小進行恰當的計劃,對支援產品工作量是非常必要的事情,可以避免大量令你頭疼的事。

  至少,下面兩個任務應該是你部署計劃的一部分:

  ◆類比一個有代表的工作量,它可能是你實施報表格服務需要經曆的。

  ◆執行一些反環境的測試,這樣的環境可能和你產品環境差不多。

  通過執行這兩個任務,記錄一些上面討論的分析標準,你將能夠在未來的部署中建立一個現實的效能基準。這個基準非常有用,你將用它來驗證將來的應用程式、配置和硬體的改變。通過使用建立的基準,你能夠證實通過簡單的再運行同樣的測試,一些被提議的更改並不會對效能產生逆影響。任何時候你對系統做一些重要的改變時,你應該重建立立一個效能基準。

  微軟和第三方有許多壓力測試工具,它們可以用來建立效能基準。Microsoft® Visual Studio® 2005團隊測試版包含了Web網站的負荷測試。更多的資訊,參考http://msdn.microsoft.com/。

  效能變數

  為了得到效能需求,你首先應該明白自己的工作需要。一些使用者通過公用入口去使用報表格服務,以交付按需報表;其他的依賴於預定報表處理和交付。一些通過報表建立工具來支援即時報表建立。

  其他影響工作量和效能的因素有:

  ◆同時進行報表請求的使用者數

  越多的啟用了的會話,越消耗機器資源。

  ◆報表定義的大小和複雜度

  複雜的報表,由大量資料構成的報表明顯要佔用比簡單報表更多的資源。

  ◆報表的產生是採用緩衝或者快照資料,還是採用實況資料

  採用緩衝或者快照資料來產生報表比採用實況資料消耗更少的資源。另外,採用緩衝報表減少了源系統的負荷。

  ◆來源資料系統的效能,報表格服務是從來源資料系統擷取資料的

  如果查詢在原資料系統上緩慢的,那麼報表的執行也將是緩慢的。

  ◆顯示報表時的格式化請求

  格式化像PDF或者Excel都比HTML要耗資源。

  ◆管理目錄的資料庫伺服器效能

  如來源資料系統一樣,如果管理目錄的資料服務器效能太差,那麼報表的顯示也將更慢。

  許多東西,由於設計的原因或者使用者配置的原因都會影響到報表的效能。包括如下:

  ◆應用程式設定,如報表格服務設定檔的配置,IIS和作業系統的配置。

  ◆支援報表應用程式的硬體設定和設計。

  ◆外部原因像交付基礎設施,包括網路能力,為訂閱交付的Email伺服器的效能,甚至檔案分享權限設定的有效性和效能。

  為了更好的計劃恰當的報表格服務部署的能力,你首先必須明白你的工作量特徵。由於商業因素,你的工作情況可能每月,每周或者每日的有波動。

  分析標準

  當你為你的系統確定效能基準時,你應該確定一些有意義的標準。微軟常採用以下標準:

  ◆同步會話

  ◆每秒的平均請求數

  ◆回應時間中值

  ◆每分鐘查看的總頁數

  同步會話的標準是一個用來確定其他標準的好的變數。比如,你開始的時候有100個同步會話,然後以每次100個遞增來產生一個測試工作負載。

  每秒種的平均請求標準協助你明白在假定的配置條件下,有多少Web請求可以同時進行。只要系統不是在做特定的服務,那麼每個系統測試都應該能夠等同的為所有請求服務。當你把每秒的請求數和同步的會話繪成圖時,看看圖形的頂點,它是每秒平均請求的最大值。它體現了系統能夠服務時,每秒請求的峰值和會話的最大值。很明顯,根據每分鐘的請求數或者每小時的請求數,每秒的平均請求能夠很容易被推斷出。中值回應時間是一個普通的標準,可以用來理解報表格服務需要多少時間來響應請求。很明顯,時間越短越好。

  根據每分鐘查看的頁面數,可以看出系統配置的能力,能夠執行的報表數和並發的頁面查看。你也可以得到更多的關於頁面查看的細節資訊,包括以下資訊:

  ◆初始化報表請求

  為了獲得這些資訊,類比一個使用者發出一個初始化請求,查看報表的第一頁。初始化報表請求需要花費比並發頁面查看請求更多的時間來處理。

  ◆並發的頁面查看

  為了獲得這些資訊,類比一個使用者發出請求去查看一個報表的並發頁面。

  ◆總的頁面查看

  這是所有初始化報表請求,加上所有的並發頁面查看的總和,提供了一個匯總的值,這個值體現了所有請求查看的頁面總數。

  考慮時間

  在現實生活中,在我們發出並發請求去查看其他頁面或者運行其他報表之前,當我們查看報表結果時,通常需要等待。

  在自我裝載,微軟選擇了一個隨機的思慮時間在25到35秒之間。這個考慮時間看起來比較現實,假設使用者執行一個報表,在訪問並發頁面之前花費了一定的時間來查看報表結果。

  命名的使用者數vs 同步啟用的會話

  一個命名的使用者數不等於同步啟用的會話數。當計劃自己的部署時,記住如下資訊:

  ◆命名的使用者數表示了那些有許可權和潛力來訪問報表格服務的人數。

  ◆在任意時刻,僅僅一少部分的命名使用者會導致同步啟用的會話。

  ◆由于思考時間,在任意時刻,僅僅一少部分的同步啟用的會話會發出並發請求。

  總結

  Microsoft SQL Server報表格服務是用來滿足廣大組織低本高效的需要,彈性報表是用來最佳化企業生產率。在.NET平台和Windows Server系統之上,報表格服務提供了可擴充性和可靠性,用來滿足企業環境。它的標準的可擴充體繫結構,由開放介面和APIs組成,支援整合到幾乎所有的IT環境。通過這種方法,它有效地使使用者和他們在企業中所需的資訊聯絡起來。

  在大多數情形中,添加機器資源能夠使報表格服務部署的效能按線性增長。增加系統效能的第一個邏輯步驟是拆分報表格服務目錄到遠程伺服器上。隨後,你必須決定是採用向上擴充還是採用向外擴充來追求更好的報表格服務效能。微軟測試證明兩種方式都是有效。因此,你的選擇更多的取決於你自己的經濟狀況,自己希望的舒適程度和自己喜好。

  忽略你最後選擇的擴充方法,建立你自己的客戶基準非常重要。這樣你就可以監控到在你改變更配置置時,系統地效能是提高了還是降低了。

  只有通過測量工作量才能反應使用者需求,你才能決定更改是對系統有積極作用還是有消極作用。

  微軟提供了一些工具,如在白皮書中描述的一樣,用來協助你測量和監控報表格服務的效能。使用文章中提供的指導,你應該能夠為你的報表格服務部署成功地執行基本效能計劃,同時監控進行中的操作。

  附錄A: 系統配置的設定

  當配置你的報表格服務系統,你應該看看以下的設定和選項,以最佳化你的系統效能。當建立基準效能測量時,它們是非常重要的。

  CleanupCycleMinutes

  CleanupCycleMinutes域控制多長的時間Reporting Services執行特定的常規事務,如清除超期或者失去聯絡的會話。這些工作在繁忙的時間內進行是比較耗資源的。

  如果你有可用的磁碟空間用來長時間的儲存會話資料,CleanupCycleMinutes值的增加減少了常規事務執行的時間。

  CleanupCycleMinutes域駐留在RSReportServer. config file上。預設時,該檔案位於C:Program FilesMicrosoft SQL ServerMSSQLMSSQL.InstanceReporting ServicesReportServer上。預設的設定值是10。而且,為了測試它的擴充性微軟已經把值變到了1200,目的是在測試回合期間進行這些處理。

  MaxActiveReqForOneUser

  預設時,報表格服務限制了明顯的URL和Web服務要求數量,目的是為了避免DOS(denial of service)的攻擊。作為一個管理員,你可以增加這些限制,以便更多的請求可以為每一個使用者同步開啟。當到達上限時,報表伺服器自動放棄那個使用者隨後的請求。這個值也可以在RSReportServer.config file中找到,預設的值為20。你也可以向上調,取決於在測試中有多少唯一使用者。

  當使用同樣的機器作為報表伺服器時,在SQL Server上設定記憶體配置限制

  你可以把被SQL Server消耗的記憶體,和由Report Serve通過 “pinning” SQL Server而消耗的記憶體,劃分到特定的記憶體數。這樣做,設定最大和最小的記憶體數量到機器實體記憶體的一部分。

  比如,在一個有3GB記憶體可用的機器上,你可以給SQL Server1GB,剩下的留給Reporting Services

  ReportServerTempDB 分區

  對於擴充性測試,微軟建立了一個分區的ReportServerTempDB資料庫,由10個獨立的1GB檔案和一個1GB交易日誌組成,目的是為磁碟I/O操作改進並行性。

  如果在工作量中的快照已經被用來做測試,對ReportServer資料庫進行分區也會帶來好處。所有的11個檔案位於一個單獨的RAID 0+1存放裝置上,用來最佳化對目錄的讀寫操作。

  以下是一個T-SQL指令碼的例子,描述了如何進行的大概意思。

use master
drop database ReportServerTempDB
go
create database ReportServerTempDB
ON
PRIMARY
( NAME = ReportServerTempDB1,
FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQLMSSQL。
InstancedataReportServerTempDB1。mdf',
SIZE = 1GB,
FILEGROWTH = 20),
( NAME = ReportServerTempDB2,
FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQLdataReportServerTempDB2。ndf',
SIZE = 1GB,
FILEGROWTH = 20),
。 。 。
( NAME = ReportServerTempDB10,
FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL MSSQL。
InstancedataReportServerTempDB10。ndf',
SIZE = 1GB,
FILEGROWTH = 20)
LOG ON
( NAME = ReportServerTempDBLog,
FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL MSSQL。
InstancedataReportServerTempDB_Log。ldf',
SIZE = 1GB,
FILEGROWTH = 20)
COLLATE Latin1_General_CI_AS_KS_WS
go
use ReportServerTempDB
exec sp_addrole 'RSExecRole'
go

  附錄B:效能測試工具

  該節描述了許多工具用來測試和監控報表格服務效能。

  Windows 效能監控工具

  控制報表格服務的效能統計類能夠通過整合效能工具來控制。該工具是Microsoft® Windows®作業系統的一部分。報表格服務執行中的監控特定的效能統計類,使你可以進行如下工作:

  ◆估計支援期望工作量的系統需求。

  ◆建立效能基準來測量配置更改和應用程式升級所帶來的影響。

  ◆在負荷下監控應用程式效能,看看是真的還是假的增長了。

  ◆核實升級硬體是否帶來了你所期望的效能影響。

  ◆檢驗系統配置更改是否帶來了你所期望的效能影響。

  如果你需要從單個機器上來監控多個報表格服務執行個體,你可以一起或者單獨的監控這些執行個體。選擇包含那個執行個體是添加統計的一部分。對包含在Windows中的關於使用效能工具的資訊,可以查看Windows產品文檔。

  訪問效能工具

  2.從開始菜單點擊“Run”。

  3.在開啟的文字框中輸入perfmon ,然後點擊OK。

  4.在效能工具中,在左邊的長方塊中選擇系統監控對象,然後在效能圖上右點擊。

  5.選擇Add統計類。

  你應該現在就開始進行以上工作。



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。