Have you ever wanted to replay your application workload be that because you upgraded to a new hardware, added new indexes or something else? Now there's a feature for that! It's called Distributed Replay and in this session you will learn how this new feature in SQL Server 2012 can help you resolve that problem!
10. “There’s a new player in town!”
DISTRIBUTED REPLAY
21.12.2013
11. So what’s Distributed Replay?
SQL Server 2012 feature
Available in all editions (kind of…)
Works with 2005 and higher (kind of…)
21.12.2013
12. Distributed Replay Components
1. Administration tool – the cmd tool to manage the replay
2. DReplay Controller – the brain behind the replay
3. DReplay Client – machines(up to 16) that replay the workload
4. Target Server – The SQL Server instance you replay against
21.12.2013
13. OK, but how are they working together?
21.12.2013
15. Installation requirements and gotchas
1. Services must run under domain user accounts
2. Firewalls must allow the traffic of DR Components
3. DCOM permissions must be configured
4. SQL Server logins for the clients need to be created
21.12.2013
22. Replay your workload. The steps.
1. Capture the workload with Profiler (TSQL-Replay)
2. Preprocess the trace with “dreplay preprocess”
3. Decide on a mode – synchronization or stress
4. Replay the workload with “dreplay replay”
5. Analyze the results
21.12.2013
24. At the end
1. The Tool for replaying mission critical workloads
1. Don’t be afraid of not having a GUI
2. Capture -> Preprocess -> Replay
3. Document, blog, share it with the community!
21.12.2013
25. Resources
Channel 9 - Joe Sack(SQLSkills) Intro and Demo blog posts
Jonathan Kehayias(SQLSkills) Intro and Demo blog posts
Microsoft Peace of Mind Video
MSDN Documentation
Distributed Replay GUI (in beta)
… you and me now
21.12.2013
Thanks for having me! We’re going to talk about a technology that no one talks about for some reason.This sessions if for the people that care about:if their app will work in case of a migrationperformance of the apphow will it cope in case of twice as much users
Senior DBA at HP Enterprise Services in Bulgaria, working for Fortune 500Regular speaker at conferences / webcasts / podcastsTrainer for external companiesTeacher at the 2 biggest universities in BulgariaVery active on twitter / blogging / hangoutsMore on LinkedInEasyest way to reach me – twitterA lot of SQL Server in my world
Have ever considered capturing and replaying their workload?How many of you have done that? Why, how is this helpful?
Application compatibility meaning both upgrade or migration of the app
The maestro!
The maestro! Debug!
-T enable trace flag -r number of iterations for each connection to execute its input file/query -p network packet size for connections - SQL Server only -n number of connections – multiplying the workloadProblems with SQL Server 2012 …
but you know the words – it’s not cool enoughSCALE is your word!
What is this doing actually? Few words about the functionality.
Thank god there is no support for SQL Server 2000 anymore…Developer – DR Controller allows just 1 clientCannot replay to an older version! 2005 -> 2008 2008 -> 2008 and higherWindows Server 2008 SP2 and higherDR Controller feauture - 160 MB DR Client - 1.9GBCan be installed via Parameters – DREPLAY_CTLR , DREPLAY_CLT, TOOLS
Administration tool – you have to install the Management Tools Complete
1024x768Why when you click just next next next it will not actually workDCOM -> Distributed Component Object Model – technology of microsoft for communication between software components across the networkw
More columns can be added, but will be removed in the preprocesses Replay Template is the minimum amount of eventsUSE SERVER-SIDE TRACE OF COURSE!
Sorts the events in ascending order based on EventSequenceRemoves all events and columns that are not replayableGenerates 2 files – (intermediate file) one xml and system fileGoal is to preprocess the trace once and replay it by using various optionsAnd you have the options to include / exclude the system sessions and to remove the idle time between the users events
Default – stressSync – replays the sequence of the whole trace – for high fidelity (correctnes) – functional testingStress – guarantees that the events will be ordered correctly per SPID or connectionIn stress you can use all options
CommunicatesDivides the workload per clientsDON’T FORGET the replay can be faster in the new environment – but the connection time and think time are controlling this!
Check the DR Controller configuration file -> set to syncCapture simple workload from AdventureWorks ScriptReplay it with sync – watch results on both clientsTurn on SSMS – ensure it is running with 128 of RAM (reboot)Turn on perfmon – ensure PLE + CPU time are addedReplay the complex one in stress + connection – watch the metrics and pause the traceAdd 2500 GB of memory to SQL server - rebootReplay the complex trace in sync and watch the countersReplay the trace with the other parameters and watch the time execution
Relax a new one is coming!
Not that many people and documentation about the featurePlay with it, test it, blog about it, talk about it. I think it matters!
If less events are selected – Input trace is not valid.