DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How...

37
Can Your BI Solution Scale? Teo Lachev MVP, MCSD, MCITP, MCT [email protected] DBI330

Transcript of DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How...

Page 1: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Can Your BI Solution Scale?

Teo LachevMVP, MCSD, MCITP, [email protected]

DBI330

Page 2: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

About Me

Consultant, author, and mentor with focus on Microsoft BIOwner of Prologika –BI consulting and training company based in Atlanta (www.prologika.com)Microsoft SQL Server MVP for 5 yearsLeader of Atlanta BI group (atlantabi.sqlpass.org)

Page 3: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Agenda

Present practical load testing methodologyLoad test Reporting ServicesLoad test Analysis ServicesAnalyze results and performance bottlenecksShare performance best practices

Page 4: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Why Load Test?

Determine server throughputUnderstand how load impact server resourcesPlan server hardware

wikipedia.org

Page 5: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Typical BI Solution

DW

SSAS

SSRS

Transactional Reports

Analytical Reports

Analytical Reports

SSAS Clients

Page 6: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

How to Load Test?

Step 1: Establish performance goalStep 2: Prepare load testsStep 3: Run and analyze load testsDo we meet the goal?

Yes – we are doneNo – identify and eliminate performance bottlenecksGo to Step 3.

Page 7: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Establish Performance Goal

• Use the SSRS Execution Log, capture SSAS trace• Look for peak times

Gatherworkload usage

• How many more users?• Double estimate just in caseEstimate

future loads

• Reports/sec or queries/sec• Number of concurrent users• Concurrent users != Deployed users

Derive performance goal

Page 8: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Deployed vs. Concurrent Users

Time

Users

2 concurrent users

Page 9: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Establish Performance GoalCase Study

Gather report workloadPeak report usage – November 22th, 9 AM – 10 AM200 reports executed by 20 distinct users200/3,600 = 0.05 reports/sec

Estimate future loads500 users – x25 increase (500/20)0.05 x 25 = 1.25 reports/sec

Derive performance goalLet's double 2 x 1.25 = 2.5 reports/sec

Page 10: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Establish Performance GoalAbout reports & queries

Reports are not born equalA "report" or "query" is an abstractionThink of "vehicle" if testing highway capacity

Page 11: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Analyzing report andquery usage

demo

Page 12: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Prepare TestsReporting Services

Identify a report mix10-15 reportsSlow and fast reports

Obtain report URLs and parameter valuesUse Visual Studio (Ultimate or Test edition) to create:

Web performance test – "quick and dirty" testsUnit test – custom tests, e.g. for parameter handling

Page 13: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Create Load TestReporting Services

Use Create New Load Test wizard and set upLoad pattern – constant or steppedTest mix – a collection of web or/and unit testsCounter sets – CPU, memory, disk utilizationRun settings – counters, warm-up time, test duration or iterations

Tip: Increase the MaxActiveReqForOneUser setting in rsreportserver.config to a large value, e.g. 999999

Page 14: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Create Load TestReporting Services

Page 15: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

demoCreating SSRS load test

Page 16: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Creating SSRS load test

demo

Page 17: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Run and Analyze Load Tests

Run the load test with stepped loadAim for no more than 80% server utilization Obtain and record:

Reports/secConcurrent users

Watch for errors!VS supports 250 virtualusers Users

ThroughputReports/sec

80%

Page 18: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Finding Performance Bottlenecks

Every system has a saturation pointUse Windows performance counters to discover bottlenecksTypical bottlenecks

CPU (Processor: % Processor Time)Memory (Memory: Available MBytes)HDD (PhysicalDisk: Current Disk Queue Length)Network (Network Interface: Bytes Sent/sec, Bytes Received/sec)

CPU

RAM

NETWORK HDDBUS

Page 19: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Run and Analyze Tests

Page 20: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

demoRun and analyze SSRSload tests

Page 21: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Run and analyze SSRSload tests

demo

Page 22: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Load Testing Analysis Services

Download the SSAS load testing frameworkAS Query Generator (ASQueryGenerator)

Generates query templatesSupports parameterized queries

AS Load Simulator (ASLoadSim)Implements a Visual Studio custom test pluginIncludes SSAS Load Testing Best Practices document – read it!

Another option that doesn't require Visual StudioAS Performance Workbenchhttp://asperfwb.codeplex.com/

Page 23: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

demoLoad test Analysis Services

Page 24: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Performance Best Practices

Plan for load testing early in implementation cycle Tune and optimize before scaling up or outReporting Services

Analyze ExecutionLog and tune queriesRead SSRS Performance Optimizations whitepaperhttp://tinyurl.com/rsperf

Analysis ServicesUse SQL Profiler to get SE and FE time breakdownTune server and queries – read Analysis Services 2008 Performance GuideUse Xperf to understand if queries are disk or CPU bound http://preview.tinyurl.com/xperfssas

Page 25: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Performance Best PracticesContinued

Upgrade to SSRS 2008 or laterRedesigned processing engineMuch less memory boundScale to 3-4 x number of users than 2005

Upgrade to SSAS 2008 or laterBlock computation modeQueries execute 20-60% faster

Page 26: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

demoIdentifying performancebottlenecks

Page 27: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Identifying performancebottlenecks

demo

Page 28: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Scaling Out

Page 29: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Resources

Using VS to Perform Load Testing on SSRS by Runying Mao and Heidi Steenhttp://msdn.microsoft.com/en-us/library/aa964139(SQL.90).aspxSSRS Performance Optimizations by Denny Lee, Lukasz Pawlowski http://tinyurl.com/rsperfAS Load Simulator and Query Generatorhttp://sqlsrvanalysissrvcs.codeplex.comAS Performance Workbenchhttp://asperfwb.codeplex.comAnalysis Services 2008 Performance Guidehttp://tinyurl.com/ssas2008perfguideSQL CAT website - Scaling Up SSRS vs. SSRS 2005: Lessons Learnedhttp://tinyurl.com/rs2005to2008My website and bloghttp://www.prologika.com

Page 31: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Related Content

DBI405: Scale-Out Deployment of Microsoft SQL Server Reporting ServicesDBI320: Upsizing and Modernizing with the Microsoft BI Stack and Fast Track Data WarehouseDBI301: Microsoft SQL Server Reference Architecture and AppliancesDBI320: Upsizing and Modernizing with the Microsoft BI Stack and Fast Track Data Warehouse

Find Me Later At DBI TLC

Page 32: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

DPR Track Resources

http://www.microsoft.com/visualstudio http://www.microsoft.com/visualstudio/en-us/lightswitch http://www.microsoft.com/expression/http://blogs.msdn.com/b/somasegar/http://blogs.msdn.com/b/bharry/http://www.microsoft.com/sqlserver/en/us/default.aspxhttp://www.facebook.com/visualstudio

Page 33: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Resources

www.microsoft.com/teched

Sessions On-Demand & Community Microsoft Certification & Training Resources

Resources for IT Professionals Resources for Developers

www.microsoft.com/learning

http://microsoft.com/technet http://microsoft.com/msdn

Learning

http://northamerica.msteched.com

Connect. Share. Discuss.

Page 34: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Complete an evaluation on CommNet and enter to win!

Page 35: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.

Scan the Tag to evaluate this session now on myTech•Ed Mobile

Page 36: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.
Page 37: DBI330. Use the SSRS Execution Log, capture SSAS trace Look for peak times Gather workload usage How many more users? Double estimate just in.