Denali – Day 17: Distributed Replay
Distribution replay a new command prompt utility provided by Denali, this works same as Profiler Reply but has additional features over it.
- Unlike profiler reply distributed replay also reply the trace but it can be on multiple servers.
- For reply on profile it takes a hour or more for big transactions also may take days with very big trace file, and it works one server at a time.
- Distributed replay works very fast, and can be implemented several system.
“When replaying an intensive OLTP application that has many active concurrent connections or high throughput, Profiler reply can become a resource bottleneck.“
We have to install it separately on the same server as Engine or different server with sql server setup. There are two components we could install
Sql server Controller : Controls/Manages the reply, like it’s a heart of Distribution reply. Which contains the traced output files used for distribution.
Sql server Distribution Reply client (for load distribution) – is a mediator, multiple the more the client faster will be distribution.
Target Sql server instance : Target
Distributed Replay administration tool DReplay.exe – this is a administration tool /command which runs for distribution replay which requires different parameter to per requirement for distribution like
Preprocess
Replay
Status
cancel
with different options
Syntax:
dreplay {preprocess|replay|status|cancel} [options] [-?]}
Usage:
dreplay preprocess [-m controller] -i input_trace_file
-d controller_working_dir [-c config_file] [-f status_interval]
dreplay replay [-m controller] -d controller_working_dir [-o]
[-s target_server] -w clients [-c config_file]
[-f status_interval]
dreplay status [-m controller] [-f status_interval]
dreplay cancel [-m controller] [-q]
Syntax:
dreplay preprocess [-m controller] -i input_trace_file
-d controller_working_dir [-c config_file] [-f status_interval]
Syntax:
dreplay replay [-m controller] -d controller_working_dir [-o]
[-s target_server] -w clients [-c config_file]
[-f status_interval]
Syntax:
dreplay status [-m controller] [-f status_interval]
Syntax:
dreplay cancel [-m controller] [-q]
Services:
Controller: can be on the source server or independent server (one server can have only one controller services running).
Client: There can be one or more clients in each Distributed Replay environment.
Dreplay.exe has parameter options creates its own configuration XML files.
<controller installation path>\DReplayController.config
<controller installation path>\DReplayClient.config
<controller installation path>\DReplayPreprocess.config
<controller installation path>\DReplayReplay.config
Config files will have all configuration information related to it.
Example:
First create a trace file(using profiler/server side trace ) save it on local system C:\profilerTrace.trc.
Go to location where dreply.exe exists, considering here it is on C:. also assume the same source server has Controller services and client services running.
Now run the preprocess to create a distribution files location could be C:\Controllerfiles
C:\>dreplay preprocess –m localhost -i C:\profilerTrace.trc -d C:\Controllerfiles
It will process and create a controller file, now that files needs to be play for target server.
C:\dreplay replay -m localhost -d C:\Controllerfiles –o c:\output -w client1 –s targetInstance –f 2
If you want to see the same reply from different system using status, and if required we can cancel the controller as well.
Configuration
Source and target server should be compatible for DReplay.exe