Configure Distributed Replay

Microsoft SQL Server Distributed Replay 配置详细信息在 Distributed Replay 控制器、客户端以及安装有管理工具的位置的 XML 文件中指定。 这些文件包括下面的文件:

控制器配置文件:DReplayController.config

当 SQL Server 分布式重播控制器服务启动时,它将从控制器配置文件 DReplayController.config加载日志记录级别。 此文件位于安装有分布式重播控制器服务的文件夹内:

<controller installation path>\DReplayController.config

控制器配置文件指定的日志记录级别包括:

设置 XML 元素 说明 允许的值 必选
日志记录级别 <LoggingLevel> 为控制器服务指定日志记录级别。 INFORMATION | WARNING | CRITICAL 不是。 默认情况下,该值为 CRITICAL

示例

本示例显示一个控制器配置文件,该文件已经过修改以便消除 INFORMATIONWARNING 日志条目。

<?xml version='1.0'?>  
<Options>  
<LoggingLevel>CRITICAL</LoggingLevel>  
</Options>  

客户端配置文件:DReplayClient.config

当 SQL Server 分布式重播客户端服务启动时,它将从客户端配置文件 DReplayClient.config加载配置设置。 此文件位于每台客户端上安装有分布式重播客户端服务的文件夹内:

<客户端安装路径>\DReplayClient.config

客户端配置文件指定的设置包括:

设置 XML 元素 说明 允许的值 必选
控制器 <Controller> 指定控制器的计算机名称。 客户端将尝试通过联系控制器在分布式重播环境中注册。 可以用“localhost”或“.”指代本地计算机。 不是。 默认情况下,客户端会尝试向在本地运行的控制器实例 (“.”)(如果存在)注册。
客户端工作目录 <WorkingDirectory> 客户端上用于保存调度文件的本地路径。

此目录中的文件在下一次重播时会被覆盖。
以驱动器号开头的完整目录名称。 不是。 如果未指定任何值,则调度文件将与默认客户端配置文件保存在同一位置。 如果指定一个值,而该文件夹在客户端上不存在,则客户端服务不会启动。
客户端结果目录 <ResultDirectory> 客户端上用于保存重播活动(针对客户端)的结果跟踪文件的本地路径。

此目录中的文件在下一次重播时会被覆盖。
以驱动器号开头的完整目录名称。 不是。 如果未指定任何值,则结果跟踪文件将与默认客户端配置文件保存在同一位置。 如果指定一个值,而该文件夹在客户端上不存在,则客户端服务不会启动。
日志记录级别 <LoggingLevel> 客户端服务的日志记录级别。 INFORMATION | WARNING | CRITICAL 不是。 默认情况下,该值为 CRITICAL

示例

此示例显示一个客户端配置文件,该文件已经过修改,以指定控制器服务正在名为 Controller1的另一台计算机上运行。 WorkingDirectoryResultDirectory 元素配置为分别使用文件夹 c:\ClientWorkingDirc:\ResultTraceDir。 日志记录级别已从默认值改为消除 INFORMATIONWARNING 日志条目。

<?xml version='1.0'?>  
<Options>  
    <Controller>Controller1</Controller>  
    <WorkingDirectory>c:\ClientWorkingDir</WorkingDirectory>  
    <ResultDirectory>c:\ResultTraceDir</ResultDirectory>  
    <LoggingLevel>CRITICAL</LoggingLevel>  
</Options>  

预处理配置文件:DReplay.exe.preprocess.config

当您使用管理工具启动预处理阶段时,管理工具将从预处理配置文件 DReplay.exe.preprocess.config 加载预处理设置。

使用默认配置文件或使用管理工具的 -c 参数来指定修改过的预处理配置文件的位置。 有关使用管理工具的预处理选项的详细信息,请参阅预处理选项(分布式重播管理工具)

默认情况下,预处理配置文件位于安装有管理工具的文件夹中:

<管理工具安装路径>\DReplayAdmin\DReplay.exe.preprocess.config

预处理配置设置在预处理配置文件的 <PreprocessModifiers> 元素的子级 XML 元素中指定。 这些设置包括:

设置 XML 元素 说明 允许的值 必选
包括系统会话活动 <IncSystemSession> 指示重播期间是否包括捕获过程中的系统会话活动。 Yes | No 不是。 默认情况下,该值为 No
最长空闲时间 <MaxIdleTime> 将空闲时间的上限设为某个绝对值(以秒为单位)。 = -1 的 >整数

-1 表示原始跟踪文件中的原始值没有变化。

0 表示在任意给定时间点有某个活动正在进行。
不是。 默认情况下,该值为 -1

示例

默认预处理配置文件:

<?xml version='1.0'?>  
<Options>  
    <PreprocessModifiers>  
        <IncSystemSession>No</IncSystemSession>  
        <MaxIdleTime>-1</MaxIdleTime>  
    </PreprocessModifiers>  
</Options>  

重播配置文件:DReplay.exe.replay.config

当您使用管理工具启动事件重播阶段时,管理工具将从重播配置文件 DReplay.exe.replay.config 加载重播设置。

使用默认配置文件或使用管理工具的 -c 参数来指定修改过的重播配置文件的位置。 有关使用管理工具的重播选项的详细信息,请参阅重播选项(分布式重播管理工具)

默认情况下,重播配置文件位于安装有管理工具的文件夹中:

<管理工具安装路径>\DReplayAdmin\DReplay.exe.replay.config

重播配置设置在重播配置文件的 <ReplayOptions><OutputOptions> 元素的子级 XML 元素中指定。

<ReplayOptions> 元素

重播配置文件在 <ReplayOptions> 元素中指定的设置包括:

设置 XML 元素 说明 允许的值 必选
SQL Server 目标实例(测试服务器) <Server> 指定要连接的服务器名和 SQL Server 实例名。 server_name[\instance_name]

不能使用“localhost”或“.”来表示本地主机。
否,如果已通过使用管理工具的 -starget server 参数和“重播” 选项指定服务器名称。
顺序模式 <SequencingMode> 指定用于事件计划的模式。 synchronization | stress 不是。 默认情况下,该值为 stress
压力调整粒度 <StressScaleGranularity> 指定服务配置文件标识符 (SPID) 上的所有连接在压力模式下是应该一起调整 (SPID) 还是单独调整 (Connection)。 SPID | Connection 是的。 默认情况下,该值为 SPID
连接时间刻度 <ConnectTimeScale> 用于调整压力模式下的连接时间。 介于 1100之间的整数。 不是。 默认情况下,该值为 100
思考时间刻度 <ThinkTimeScale> 用于调整压力模式下的思考时间。 介于 0100之间的整数。 不是。 默认情况下,该值为 100
使用连接池 <UseConnectionPooling> 指定是否将在每个分布式重播客户端上启用连接池。 Yes | No 是的。 默认情况下,该值为 Yes
Health Monitor 间隔时间 <HealthmonInterval> 指示运行 Health Monitor 的频率(以秒为单位)。

只在同步模式下才使用该值。
Integer >= 1

-1 为禁用)
不是。 默认情况下,该值为 60
查询超时 <QueryTimeout> 指定查询超时值(以秒为单位)。 返回第一行后该值才会生效。 Integer >= 1

-1 为禁用)
不是。 默认情况下,该值为 3600
每个客户端的线程数 <ThreadsPerClient> 指定要用于每个重播客户端的重播线程数。 介于 1512之间的整数。 不是。 如果未指定,分布式重播将使用值 255

<OutputOptions> 元素

重播配置文件在 <OutputOptions> 元素中指定的设置包括:

设置 XML 元素 说明 允许的值 必选
记录行计数 <RecordRowCount> 指示是否应记录每个结果集的行计数。 Yes | No 不是。 默认情况下,该值为 Yes
记录结果集 <RecordResultSet> 指示是否应记录所有结果集的内容。 Yes | No 不是。 默认情况下,该值为 No

示例

默认重播配置文件:

<?xml version='1.0'?>  
<Options>  
    <ReplayOptions>  
        <Server></Server>  
        <SequencingMode>stress</SequencingMode>  
        <ConnectTimeScale></ConnectTimeScale>  
        <ThinkTimeScale></ThinkTimeScale>  
        <HealthmonInterval>60</HealthmonInterval>  
        <QueryTimeout>3600</QueryTimeout>  
        <ThreadsPerClient></ThreadsPerClient>  
    </ReplayOptions>  
    <OutputOptions>  
        <ResultTrace>  
            <RecordRowCount>Yes</RecordRowCount>  
            <RecordResultSet>No</RecordResultSet>  
        </ResultTrace>  
    </OutputOptions>  
</Options>  

另请参阅

管理工具命令行选项(分布式重播实用工具)
SQL Server 分布式重播
SQL Server Distributed Replay 论坛
使用 Distributed Replay 对 SQL Server 进行负载测试 - 第 2 部分
使用 Distributed Replay 对 SQL Server 进行负载测试 – 第 1 部分