使用 SQLIOSim 实用工具模拟磁盘子系统上的 SQL Server 活动

本文介绍如何使用 SQLIOSim 实用工具在磁盘子系统上执行压力测试,以模拟 SQL Server 活动。

原始产品版本:SQL Server
原始 KB 数: 231619

简介

本文介绍 SQLIOSim 工具。 可以使用 SQLIOSim 对 SQL Server 使用的磁盘子系统执行可靠性和完整性测试。 这些 SQLIOSim 测试模拟MICROSOFT SQL Server 执行的读取、写入、检查点、备份、排序和预读活动。 有关 SQL Server I/O 模式的详细信息,请参阅 SQL Server I/O 基础知识,第 2 章。 SQLIOSim 实用工具独立于 SQL Server 引擎执行此模拟。

I/O 模拟测试的主要目标是在 SQL Server 开始使用基础 I/O 子系统之前确保基础 I/O 子系统的可靠性。 SQLIOSim 不与 SQL Server 交互,甚至不需要运行 SQL Server。 事实上,在大多数情况下,我们建议在 SQL Server 未运行时使用 SQLIOSim,以避免两个应用程序之间的 I/O 吞吐量竞争。 请非常小心,不要指出或使用 SQLIOSim 测试中的实际 SQL Server 数据库文件,因为可以覆盖这些文件。

为了帮助保持适当的数据完整性,我们建议在新的硬件上部署 SQL Server 之前对 I/O 子系统执行压力测试。 SQLIOSim 实用工具模拟 SQL Server 的读取和写入模式以及问题识别技术。 为了执行这些任务,SQLIOSim 实用工具模拟 SQL Server 系统的用户活动和系统活动。

SQLIOSim 实用工具不能保证或保证数据安全或完整性。 该实用工具旨在提供系统环境的基线测试。 SQLIOSim 实用工具可能会公开潜在的数据完整性问题。

有关日志记录和数据存储的详细信息,请参阅 SQL Server 中扩展数据可靠性的日志记录和数据存储算法的说明。

如果必须执行性能基准测试并想要确定存储系统的 I/O 吞吐量容量,请改用 Diskspd 工具。

SQLIOSim 实用工具取代了 SQLIOStress 实用工具,该实用工具以前称为 SQL70IOStress 实用工具。

SQLIOSim 位置

过去,SQLIOSim 作为单独的下载包提供。 从 SQL Server 2008 开始,SQLIOSim 包含在 SQL Server 产品安装中。 安装 SQL Server 时,可以在 SQL Server 安装的 \Binn 文件夹中找到 SQLIOSim 工具。 建议使用此更新版本的工具来模拟磁盘子系统上的 IO 活动。

三个文件是 SQLIOSim 包的一部分。 \Binn 文件夹包含两个可执行文件,SQLIOSim.comSQLIOSim.exe。 这两个可执行文件都提供相同的 I/O 模拟功能。

  • SQLIOSim.com 是命令行工具。 可以将它配置为无需用户交互即可运行。 若要执行此配置,可以使用命令行参数、配置文件或这两种方法的组合。
  • SQLIOSim.exe 是一个图形应用程序,它不接受命令行参数。 但是, SQLIOSim.exe 从配置文件加载默认配置数据。
  • 还可以使用配置文件来帮助使用 SQLIOSim 自动执行 I/O 模拟。 有关详细信息,请参阅 SQLIOSim 配置文件 部分。

在没有 SQL Server 的计算机上使用 SQLIOSim

在安装 SQL Server 之前,建议在计算机上安装 SQLIOSim 进行扩展测试。 使用它测试计划将来放置数据和日志文件的 I/O 子系统,并确保 I/O 子系统的可靠性。 若要完成此任务,请考虑从安装了 SQL Server 的计算机复制三个 SQLIOSim 文件,并在 SQL Server 安装之前运行测试。 如果计划使用预配置设置,请复制 SQLIOSim.comSQLIOSim.exe和(可选)一个或多个配置文件。 然后,在该计算机上运行测试模拟。

如何使用 SQLIOSim

运行 SQLIOSim 时不需要运行 SQL Server 服务。 事实上,我们建议在 SQLIOSim 运行时不运行 SQL Server,因为它们可以争用 I/O 资源。

警告

请勿指定用于测试的实际 SQL Server 数据库文件。 SQLIOSim 实用工具将使用随机测试模式覆盖数据,并且实际 SQL Server 数据将丢失。

接下来的几个示例演示如何使用 GUI 和命令行运行 SQLIOSim。

示例 1:使用 GUI

  1. 转到 C:\Program Files\Microsoft SQL Server\MSSQLXX。<InstanceName>\MSSQL\Binn

  2. 启动 SQLIOSIM.EXE 应用程序。 可以看到“ 文件和配置” 窗口,其中包含一些默认设置。 可以修改这些设置,以满足配置需求。

    显示文件配置的屏幕截图。

  3. 突出显示列表中的第一个 mdx 文件 C:\temp\sqliosim\sqliosim.mdx 。 此文件等效于数据文件。

  4. 通过更改文件设置的位置、大小、最大大小或增量来修改文件设置。 在模拟数据文件时,请取消选中日志文件。 然后选择“应用”按钮

    显示数据文件配置的屏幕截图。

    该示例显示文件的位置更改为 D:\temp\sqliosim\sqliosim.mdx,其大小设置为 2048 MB,最大大小设置为 4096 MB,其增量大小设置为 64 MB。

  5. 使用 ldx 后缀修改第二个文件。 此文件表示事务日志文件的等效项。 请务必启用 “日志文件 ”复选框。 完成后,请选择应用

    日志文件配置的屏幕截图。

  6. 可以通过在表格网格内的屏幕中心选择 “新建文件 ”选项,将更多文件添加到列表中。 选择“新建文件后,可以键入文件位置并选择其余设置。 不要忘记选择“ 应用”。 下面是一个示例:

    添加新测试文件的屏幕截图。

  7. 对配置感到满意后,选择“ 确定 ”按钮。

  8. 选择“模拟器>开始”以运行 SQL IO 模拟。 或者,可以选择 F12 或最左侧的按钮,其中包含一个绿色圆圈。

    显示正在运行的 SQLIOSim 的屏幕截图。

  9. 等待模拟完成并检查输出。

示例 2:使用命令行工具和配置文件

  1. 通过删除和File2节的注释File1并将值修改FileName为新的 SQLIOSim 文件来修改sqliosim.default.cfg.ini文件。 例如:

    [File1]
    FileName=D:\sqliosim\sqliosim.mdx
    InitialSize=100
    MaxSize=200
    Increment=10
    Shrinkable=TRUE
    LogFile=FALSE
    Sparse=FALSE
    
    [File2]
    FileName=L:\sqliosim\sqliosim.ldx
    InitialSize=50
    MaxSize=50
    Increment=0
    Shrinkable=FALSE
    LogFile=TRUE
    Sparse=FALSE
    
  2. 使用配置文件 C:\temp\sqliosimconfig\sqliosim.default.cfg.ini 运行 SQLIOSIM.COM

    SQLIOSIM.COM -cfg C:\temp\sqliosimconfig\sqliosim.default.cfg.ini -log C:\temp\sqliosimconfig\sqliosim.log.xml
    

示例 3:通过开关使用命令行工具

可以使用交换机同时 -dir 测试多个磁盘卷。 以下示例创建 500 MB 的文件,并运行测试 300 秒(5 分钟)。

SQLIOSIM.COM -cfg C:\temp\sqliosimconfig\sqliosim.default.cfg.ini -log C:\temp\sqliosim\sqliosim.log.xml -dir "D:\sqliosim" -dir "F:\sqliosim\testfolder" -size 500 -d 300

示例 4:对多个驱动器使用命令行工具

以下示例创建 32 GB 的文件,并使用 sqliosim.hwcache.cfg.ini 配置文件运行测试 600 秒(10 分钟)。

SQLIOSIM.COM -cfg "D:\Temp\SQLIOSIM\SQLIOSIM_Configs\sqliosim.hwcache.cfg.ini" -d 600 -dir D:\temp\sqliosim -log D:\temp\sqliosim\simlog.xml -size 32768

SQLIOSim.com 命令行参数

SQLIOSIM.COM 接受有限数量的命令行参数来控制基本行为。 SQLIOSim 实用工具的配置文件提供高级行为控制。 当命令行参数和配置文件选项重叠时,命令行参数优先。

参数 注释
file -cfg 替代Sqliosim.cfg.ini默认配置文件。 如果实用工具找不到文件,SQLIOSim 实用工具将返回错误。
file -save 将生成的配置保存在配置文件中。 可以使用此选项创建初始配置文件。
file -log 指定错误日志文件名称和错误日志文件路径。 默认文件名 为Sqliosim.log.xml
-dir迪尔 设置用于创建数据(.mdf)文件和 log (.ldf) 文件的位置。 可以多次运行此命令。 在大多数情况下,此位置是驱动器根或卷装入点。 此位置可以是长路径或 UNC 路径。
-d seconds 设置主运行持续时间。 此值不包括准备阶段和验证阶段。
-sizeMB 设置数据文件的初始大小(MB)。 文件可以增长到初始大小的两倍。 日志文件的大小计算为数据文件大小的一半。 但是,日志文件不能大于 50 MB。

SQLIOSim 配置文件

可以将配置文件与 SQLIOSim 配合使用,以帮助你提前选择 I/O 模拟的所有设置。 此配置文件可帮助自动执行 SQLIOSim。

可以从 SQL Server 支持团队的 GitHub 存储库下载各种测试的示例配置文件

无需使用配置文件。 如果不使用配置文件,所有参数都采用默认值,但数据文件位置和日志文件位置除外。 必须使用下列方法之一来指定数据文件位置和日志文件位置:

  • 使用 SQLIOSIM.COM 文件中的命令行参数。
  • 运行SQLIOSim.exe文件后,请使用“文件和配置”对话框。
  • 使用配置文件的“文件<N>”部分。

示例配置文件

如果要将其用于自动 SQLIOSim 运行,可以使用五个示例配置文件。

示例文件 说明 与默认配置文件不同的参数
sqliosim.default.cfg.ini
sqliosim.hwcache.cfg.ini - 最小化读取

- 文件是小型文件,使其完全保留在内存中

- 无顺序读取
对于 AuditUser 部分和 ReadAheadUser 部分:

CacheHitRatio=10000
UserCount=0
sqliosim.nothrottle.cfg.ini - 删除 I/O 限制

- 尽量减少等待增加 I/O 卷的时间
TargetIODuration=1000000
AuditDelay=10
RADelay=10
sqliosim.seqwrites.cfg.ini - 最小化读取

- 文件是小型文件,使其完全保留在内存中

- 文件不可收缩

- 无顺序读取

- 无随机访问

- 在不延迟的情况下批量更新大型区块
Shrinkable=FALSE

对于 AuditUserReadAheadUserRandomUser 部分:

CacheHitRatio=10000
ForceReadAhead=FALSE
BuffersBUMin=600
BuffersBUMax=1000
BUDelay=1
UserCount=0
sqliosim.sparse.cfg.ini - 仅使用 32 MB 内存

- 使目标 I/O 持续时间足够大,以启用许多未完成的 I/O 请求

- 禁用散点/收集 API,为每个 8 KB 页面发出单独的 I/O 请求

- 创建 1-GB 不可收缩的文件

- 在文件中创建 1 GB 不可收缩的辅助稀疏流
MaxMemoryMB=32
TestCycles=3
TestCycleDuration=600
TargetIODuration=10000
UseScatterGather=FALSE

[File1]
FileName=sqliosim.mdx
InitialSize=1000 MaxSize=1000
Increment=10
Shrinkable=FALSE
LogFile=FALSE
Sparse=FALSE

[File2]
FileName=sqliosim.ldx
InitialSize=50
MaxSize=50
Increment=0
Shrinkable=FALSE
LogFile=TRUE
Sparse=FALSE

[File3]
FileName=sqliosim.mdx:replica
InitialSize=1000
MaxSize=1000
Increment=10
Shrinkable=FALSE
LogFile=FALSE
Sparse=TRUE

有关参数值的注意事项

  • 如果参数的名称指示参数是比率或百分比,则参数的值表示为百分比或比率除以 0.01。 例如,参数的值 CacheHitRatio10 percent. 此值表示为 1000 10 除以 0.01 等于 1000。 百分比参数的最大值为 10000
  • 如果参数类型为数值,并且为参数分配非数值,则 SQLIOSim 实用工具会将参数设置为 0
  • 如果参数类型为 Boolean,则可以分配给参数的有效值为和 true false。 此外,这些值区分大小写。 SQLIOSim 实用工具忽略任何无效值。
  • 如果一对参数指示最小值和最大值,则最小值不得超过最大值。 例如,参数的值 MinIOChainLength 不能大于参数的值 MaxIOChainLength
  • 如果参数指示多个页,SQLIOSim 实用工具会根据 SQLIOSim 实用工具处理的文件检查分配给参数的值。 SQLIOSim 实用工具执行此检查以确保页数不超过文件大小。

配置文件部分

配置文件中有几个部分:

以下部分介绍了上述每个部分。

CONFIG 部分

SQLIOSim 实用工具采用在 SQLIOSim 配置文件的 CONFIG 节中指定的值来建立全局测试行为。

参数 默认值 说明 注释
ErrorFile sqliosim.log.xml XML 类型日志文件的名称
CPUCount 计算机上的 CPU 数 要创建的逻辑 CPU 数 最大值为 64 个 CPU。
Affinity 0 要应用于逻辑 CPU 的物理 CPU 关联掩码 关联掩码应位于活动 CPU 掩码内。 一个值 0 ,表示将使用所有可用的 CPU。
MaxMemoryMB SQLIOSim 实用工具启动时可用的物理内存 缓冲池的大小(以 MB 为单位) 该值不能超过计算机上的物理内存总量。
StopOnError 在第一个错误发生时停止模拟
TestCycles 1 要执行的完整测试周期数 指示无限数量的测试周期的值 0
TestCycleDuration 300 测试周期的持续时间(以秒为单位),不包括周期结束时的审核通过
CacheHitRatio 1000 SQLIOSim 实用工具从磁盘读取时模拟的缓存命中率
MaxOutstandingIO 0 允许进程范围的未完成 I/O 操作的最大数目 该值不能超过 140,000。 一个值 0 意味着允许最多 140,000 个 I/O 操作。 这是实用工具的限制。
TargetIODuration 100 I/O 操作的持续时间(以毫秒为单位),以限制为目标 如果平均 I/O 持续时间超过目标 I/O 持续时间,SQLIOSim 实用工具会限制未完成的 I/O 操作数以减少负载并提高 I/O 完成时间。
AllowIOBursts 允许关闭限制以发布许多 I/O 请求 在初始更新、初始检查点和最终检查点在测试周期结束时启用 I/O 突发。 仍会遵循该 MaxOutstandingIO 参数。 可以期待长时间的 I/O 警告。
NoBuffering 使用 FILE_FLAG_NO_BUFFERING 选项 SQL Server 使用 FILE_FLAG_NO_BUFFERING == true.. 某些实用工具和服务(如 Analysis Services)使用 FILE_FLAG_NO_BUFFERING == false。 若要完全测试服务器,请为每个设置执行一个测试。
WriteThrough 使用 FILE_FLAG_WRITE_THROUGH 选项 SQL Server 使用 FILE_FLAG_WRITE_THROUGH == true.. 但是,某些实用工具和服务使用 FILE_FLAG_WRITE_THROUGH == false 打开数据库文件。 例如,SQL Server Analysis Services 使用 FILE_FLAG_WRITE_THROUGH == false 打开数据库文件。 若要完全测试服务器,请为每个设置执行一个测试。
ScatterGather 使用 ReadScatterWriteGather API 如果此参数设置为 true,则 NoBuffering 参数也设置为 true

SQL Server 对大多数 I/O 请求使用散点/收集 I/O。
ForceReadAhead 执行预读操作,即使数据已读取 即使数据页已位于缓冲池中,SQLIOSim 实用工具也会发出读取命令。

Microsoft SQL Server 支持部门已成功使用真实设置来公开 I/O 问题。
DeleteFilesAtStartup 如果存在文件,请在启动时删除文件 文件可能包含多个数据流。 仅在文件中截断了在条目中指定的 File <N> FileName 流。 如果指定了默认流,则会删除所有流。
DeleteFilesAtShutdown false 测试完成后删除文件 文件可能包含多个数据流。 仅在文件中截断了在条目中指定的 File <N> FileName 数据流。 如果指定了默认数据流,SQLIOSim 实用工具将删除所有数据流。
StampFiles false 通过标记零展开文件 如果文件很大,此过程可能需要很长时间。 如果将此参数设置为 false,则 SQLIOSim 实用工具通过设置有效的数据标记来扩展文件。

SQL Server 2005 对数据文件使用即时文件初始化功能。 如果数据文件是日志文件,或者未启用即时文件初始化,SQL Server 将执行零标记。 早于 SQL Server 2000 的 SQL Server 版本始终执行零标记。

应在测试过程中切换参数的值 StampFiles ,以确保即时文件初始化和零戳记都正常运行。

文件<N> 部分

SQLIOSim 实用工具旨在允许进行多个文件测试。 该File<N>节表示为[File1][File2]测试中的每个文件。

参数 默认值 说明 注释
FileName 无默认值 文件名和路径 参数 FileName 可以是长路径或 UNC 路径。 它还可以包含辅助流名称和类型。 例如, FileName 可将参数设置为 file.mdf:stream2.

注意 ,在 SQL Server 2005 中,DBCC 操作使用流。 建议执行流测试。
InitialSize 无默认值 初始大小(以 MB 为单位) 如果现有文件大于为 InitialSize 参数指定的值,则 SQLIOSim 实用工具不会收缩现有文件。 如果现有文件较小,SQLIOSim 实用工具将扩展现有文件。
MaxSize 无默认值 最大大小(以 MB 为单位) 文件不能大于为 MaxSize 参数指定的值。
Increment 0 文件增长或收缩的增量的大小(以 MB 为单位)。 有关详细信息,请参阅 ShrinkUser 本文的一节。 SQLIOSim 实用工具在启动时调整Increment参数,以便建立情况: Increment * MaxExtents < MaxMemoryMB / NumberOfDataFiles
如果值为 <0a0/>,则 SQLIOSim 实用工具会将该文件设置为不可收缩。
Shrinkable false 指示文件是否可以收缩或展开 如果将参数0设置为Increment,请将文件设置为不可收缩。 在这种情况下,必须将参数设置为 Shrinkable false。 如果将参数设置为 Increment0值,请将文件设置为可收缩。 在这种情况下,必须将参数设置为 Shrinkable true
Sparse false 指示是否应在文件上设置稀疏属性 对于现有文件,将参数设置为 Sparse false 时,SQLIOSim 实用工具不会清除稀疏属性。

SQL Server 2005 使用稀疏文件来支持快照数据库和辅助 DBCC 流。

建议同时启用稀疏文件和流,然后执行测试通过。

注意:如果为文件设置设置Sparse = true,请不要在config节中指定NoBuffering = false。 如果使用这两个冲突的组合,可能会收到类似于此工具中的错误:

Error:-=====Error: 0x80070467
错误文本:访问硬盘时,即使重试后磁盘操作也失败。
说明:C:\SQLIOSim.mdx 页上的缓冲区验证失败:28097
LogFile false 指示文件是否包含用户或事务日志数据 应至少定义一个日志文件。

RandomUser 节

SQLIOSim 实用工具采用节 RandomUser 中指定的值来模拟执行随机查询操作的 SQL Server 辅助角色,例如联机事务处理 (OLTP) I/O 模式。

参数 默认值 说明 注释
UserCount -1 同时执行的随机访问线程数 该值不能超过值: CPUCount*1023-100
所有用户的总数也不能超过此值。 值为零(0)表示无法创建随机访问用户。 -1值意味着必须使用值的自动配置: min(CPUCount*2, 8)
请注意 ,SQL Server 系统可能有数千个会话。 大多数会话没有活动请求。 在 count(*) 针对动态管理视图(DMV)的 sys.dm_exec_requests 查询中使用函数作为建立此测试参数值的基线。

CPUCount此处指节中CONFIG参数的值CPUCount

该值min(CPUCount*2, 8)将产生介于和8以下值之间的CPUCount*2较小值。
JumpToNewRegionPercentage 500 跳转到文件的新区域的机会 区域开始是随机选择的。 区域的大小是参数值 MinIOChainLength 与参数值之间的随机值 MaxIOChainLength
MinIOChainLength 1 页面中的最小区域大小
MaxIOChainLength 100 页面的最大区域大小 SQL Server 2005 企业版和 SQL Server 2000 企业版最多可提前阅读 1,024 页。

最小值为 0。 最大值受系统内存的限制。

通常,随机用户活动会导致小型扫描操作发生。 使用节中指定的 ReadAheadUser 值来模拟更大的扫描操作。
RandomUserReadWriteRatio 9000 要更新的页面百分比 在区域中选择了随机长度链,可以读取。 此参数定义要更新和写入磁盘的页面的百分比。
MinLogPerBuffer 64 最小日志记录大小(以字节为单位) 该值必须是磁盘扇区大小的倍数,或者是适合磁盘扇区大小的倍数。
MaxLogPerBuffer 8192 最大日志记录大小(以字节为单位) 此值不能超过 64,000。 该值必须是磁盘扇区大小的倍数。
RollbackChance 100 发生内存中操作导致回滚操作发生的可能性。 发生此回滚操作时,SQL Server 不会写入日志文件。
SleepAfter 5 每个周期后的睡眠时间(以毫秒为单位)

AuditUser 部分

SQLIOSim 实用工具采用在 AuditUser 节中指定的值来模拟 DBCC 活动,以读取和审核有关页面的信息。 即使参数的值 UserCount 设置为 0,也会进行验证。

参数 默认值 说明 注释
UserCount 2 审核线程数 该值不能超过以下值: CPUCount*1023-100
所有用户的总数也不能超过此值。 0值意味着无法创建随机访问用户。 -1值意味着必须使用值的自动配置: min(CPUCount*2, 8)
请注意 ,SQL Server 系统可能有数千个会话。 大多数会话没有活动请求。 在 count(*) 针对 DMV 的 sys.dm_exec_requests 查询中使用函数作为建立此测试参数值的基线。

CPUCount此处指节中CONFIG参数的值CPUCount

该值min(CPUCount*2, 8)将产生介于和8以下值之间的CPUCount*2较小值。
BuffersValidated 64
DelayAfterCycles 2 完成 BuffersValidated 周期数后,应用 AuditDelay 参数
AuditDelay 200 每次 DelayAfterCycles 操作后等待的毫秒数

ReadAheadUser 节

SQLIOSim 实用工具采用节中指定的 ReadAheadUser 值来模拟 SQL Server 预读活动。 SQL Server 利用预读活动来最大化异步 I/O 功能并限制查询延迟。

参数 默认值 说明 注释
UserCount 2 预读线程数 该值不能超过以下值: CPUCount*1023-100
所有用户的总数也不能超过此值。 0值意味着无法创建随机访问用户。 -1值意味着必须使用以下值的自动配置: min(CPUCount*2, 8)
请注意 ,SQL Server 系统可能有数千个会话。 大多数会话没有活动请求。 在 count(*) 针对 DMV 的 sys.dm_exec_requests 查询中使用函数作为建立此测试参数值的基线。

CPUCount 此处指 CONFIG 部分中参数的值 CPUCount

该值min(CPUCount*2, 8)将产生介于和8以下值之间的CPUCount*2较小值。
BuffersRAMin 32 每个周期要读取的最小页数 最小值为 0。 最大值受系统内存的限制。
BuffersRAMax 64 每个周期读取的最大页数 SQL Server Enterprise 版本在单个请求中最多可以读取 1,024 页。 如果在具有大量 CPU、内存和磁盘资源的计算机上安装 SQL Server,建议增加文件大小和预读大小。
DelayAfterCycles 2 RADelay完成指定的周期数后应用参数
RADelay 200 每次 DelayAfterCycles 操作后等待的毫秒数

BulkUpdateUser 节

SQLIOSim 实用工具采用节 BulkUpdateUser 中指定的值来模拟批量操作,例如 SELECT...INTO 操作和 BULK INSERT 操作。

参数 默认值 说明 注释
UserCount -1 线程数BULK UPDATE 该值不能超过以下值: CPUCount*1023-100
一个值-1,表示必须使用以下值的自动配置: min(CPUCount*2, 8)
请注意 ,SQL Server 系统可能有数千个会话。 大多数会话没有活动请求。 在 count(*) 针对 DMV 的 sys.dm_exec_requests 查询中使用函数作为建立此测试参数值的基线。

CPUCount此处指节中CONFIG参数的值CPUCount

该值min(CPUCount*2, 8)将产生介于和8以下值之间的CPUCount*2较小值。
BuffersBUMin 64 每个周期要更新的最小页数
BuffersBUMax 128 每个周期要更新的最大页数 最小值为 0。 最大值受系统内存的限制。
DelayAfterCycles 2 BUDelay完成指定的周期数后应用参数
BUDelay 10 每次 DelayAfterCycles 操作后等待的毫秒数

ShrinkUser 部分

SQLIOSim 实用工具采用节 ShrinkUser 中指定的值来模拟 DBCC 收缩操作。 SQLIOSim 实用工具还可以使用该 ShrinkUser 部分来增加文件。

参数 默认值 说明
MinShrinkInterval 120 收缩操作之间的最小间隔(以秒为单位)
MaxShrinkInterval 600 收缩操作之间的最大间隔(以秒为单位)
MinExtends 1 SQLIOSim 实用工具将增长或收缩文件的最小增量数
MaxExtends 20 SQLIOSim 实用工具将增长或收缩文件的最大增量数

配置.ini文件注释

分号字符(;)配置 .ini 文件中行的开头导致该行被视为单个注释。

文件创建

SQLIOSim 实用工具创建单独的数据文件和日志文件,以模拟 SQL Server 在其数据文件及其日志文件中生成的 I/O 模式。 SQLIOSim 实用工具不使用 SQL Server 引擎执行压力活动。 因此,可以在安装 SQL Server 之前使用 SQLIOSim 实用工具测试计算机。

运行 SQLIOSim 实用工具时,请确保指定用于 SQL Server 数据库文件的相同文件位置。 执行此操作时,该实用工具模拟与 SQL Server 数据库相同的 I/O 路径。

可以为现有测试文件启用压缩或加密属性。 还可以为将在其中创建测试文件的现有目录启用这些属性。 启用这些属性的相应选项位于 文件或目录的“属性 ”对话框中。

默认情况下,SQLIOSim 实用工具创建具有 .mdx 和 .ldx 文件扩展名的测试文件。 因此,这些文件不会覆盖现有数据和日志文件。

警告

请勿指定用于测试的实际 SQL Server 数据库文件。 SQLIOSim 实用工具将使用随机测试模式覆盖数据,并且实际 SQL Server 数据将丢失。

SQLIOSim 错误日志和处理

SQLIOSim 实用工具在以下位置之一中创建错误日志文件:

  • 在日志启动参数中指定的位置
  • 在Sqliosim.cfg.ini文件中行中指定的位置ErrorFile=

SQLIOSim.log.xml错误日志包含有关执行的详细信息。 这些详细信息包括错误信息。 仔细查看日志以了解错误信息和警告信息。

注意

如果在 SQLIOSim 实用工具中遇到错误,建议要求硬件制造商帮助确定问题的根本原因。 问题也可能由设备驱动程序、文件系统筛选器驱动程序(例如防病毒)或 OS 引起。

多个副本

SQLIOSim 实用工具可适应多文件级测试和多用户级测试。 SQLIOSim 实用工具不需要多个调用。 如果满足以下条件,则可以运行 SQLIOSim 实用工具的多个副本:

  • 所有副本都引用每个实用工具实例的唯一测试文件。
  • MaxMemoryMB每个实例的参数提供一个可用于每个实例的非重叠内存区域。

每个实例的参数总和 MaxMemoryMB 必须小于或等于总物理内存。 某些测试阶段(如检查点模拟)可能占用大量内存,并且可能会在运行多个副本时创建内存不足的情况。 如果遇到内存不足错误,则可以减少正在运行的实用工具副本数。

参考