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!
11. So what’s Distributed Replay?
SQL Server 2012 feature
Available in all editions (kind of…)
Works with 2005 and higher (kind of…)
12. Distributed Replay Components
1. Administration tool – the cmd tool to manage the replay1. 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
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
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
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!
25. Resources
My blog – FAQ and RunAs Radio Podcast
Channel 9 - Joe Sack(SQLSkills) Intro and Demo
Jonathan Kehayias(SQLSkills) Intro and Demo
Microsoft Peace of Mind Video
MSDN Documentation
Distributed Replay GUI (in beta)
… you and me now
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
1280 x 960 primaryWhy 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 network
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!
Have ever considered capturing and replaying their workload?How many of you have done that? Why, how is this helpful?