使用 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 子系统的可靠性。 SQLIOSim 不与SQL Server交互,甚至不需要SQL Server运行。 事实上,在大多数情况下,建议在SQL Server未运行时使用 SQLIOSim,以避免两个应用程序之间的 I/O 吞吐量竞争。 请务必不要在 SQLIOSim 测试中指向或使用实际SQL Server数据库文件,因为可以覆盖它们。

为了帮助维护适当的数据完整性,建议先对 I/O 子系统执行压力测试,然后再在新硬件上部署SQL Server。 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 是图形化 (GUI) 应用程序,它不接受任何命令行参数。 但是, 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并修改新 SQLIOSim 文件的值来修改 FileNamesqliosim.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:对多个驱动器使用命令行工具

以下示例使用 sqliosim.hwcache.cfg.ini配置文件创建 32 GB 文件,) 运行测试 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 实用工具的配置文件提供高级行为控制。 当命令行参数和配置文件选项重叠时,命令行参数优先。

参数 评论
-cfg文件 重写 Sqliosim.cfg.ini 默认配置文件。 如果实用工具找不到文件,SQLIOSim 实用工具将返回错误。
-save文件 将生成的配置保存在配置文件中。 可以使用此选项创建初始配置文件。
-log文件 指定错误日志文件名称和错误日志文件路径。 默认文件名为 Sqliosim.log.xml
-dir迪尔 设置创建数据的位置 (.mdf ) 文件和 日志 (.ldf) 文件。 可以多次运行此命令。 在大多数情况下,此位置是驱动器根目录或卷装入点。 此位置可以是长路径或 UNC 路径。
-d 设置main运行的持续时间。 此值不包括准备阶段和验证阶段。
-sizeM b 将数据文件的初始大小设置为 mb (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。 例如,参数10 percentCacheHitRatio值为 。 此值表示为 1000 ,因为 10 除以 0.01 等于 1000。 百分比参数的最大值为 10000
  • 如果参数类型为数值,并且你为参数分配了非数值,则 SQLIOSim 实用工具会将参数设置为 0
  • 如果参数类型为 Boolean,则可以分配给参数 true 的有效值为 和 false。 此外,值区分大小写。 SQLIOSim 实用工具会忽略任何无效值。
  • 如果一对参数指示最小值和最大值,则最小值不得超过最大值。 例如,参数的值 MinIOChainLength 不得大于参数的值 MaxIOChainLength
  • 如果 参数指示多个页,SQLIOSim 实用工具会根据 SQLIOSim 实用工具处理的文件检查分配给参数的值。 SQLIOSim 实用工具执行此检查,以确保页数不超过文件大小。

配置文件部分

配置文件中有几个部分:

以下部分介绍了其中每个部分。

CONFIG 部分

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

参数 默认值 描述 Comments
ErrorFile sqliosim.log.xml XML 类型日志文件的名称
CPUCount 计算机上的 CPU 数 要创建的逻辑 CPU 数 最大值为 64 个 CPU。
Affinity 0 要应用于逻辑 CPU 的物理 CPU 关联掩码 关联掩码应位于活动 CPU 掩码内。 值 0 表示将使用所有可用的 CPU。
MaxMemoryMB SQLIOSim 实用工具启动时的可用物理内存 缓冲池的大小(以 MB 为单位) 该值不能超过计算机上的物理内存总量。
StopOnError true 发生第一个错误时停止模拟
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 true 允许关闭限制以发布多个 I/O 请求 I/O 突发在测试周期结束时的初始更新、初始检查点和最终检查点通过期间启用。 参数 MaxOutstandingIO 仍为遵循。 预期会出现长时间的 I/O 警告。
NoBuffering true FILE_FLAG_NO_BUFFERING使用 选项 SQL Server使用 FILE_FLAG_NO_BUFFERING == true打开数据库文件。 某些实用工具和服务(如 Analysis Services)使用 FILE_FLAG_NO_BUFFERING == false。 若要完全测试服务器,请为每个设置执行一个测试。
WriteThrough true 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 true 使用 ReadScatterWriteGather API 如果此参数设置为 true,则 NoBuffering 参数也设置为 true

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

Microsoft SQL Server支持已成功使用 true 设置来公开 I/O 问题。
DeleteFilesAtStartup true 如果文件存在,则在启动时删除文件 一个文件可以包含多个数据流。 文件中仅截断条目 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>测试中的每个文件, [File2] 节表示为 [File1]

参数 默认值 描述 Comments
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
如果 的Increment0值为 ,则 SQLIOSim 实用工具会将文件设置为不可收缩。
Shrinkable false 指示是否可以收缩或扩展文件 如果将 参数设置为 Increment0,则将文件设置为不可收缩。 在这种情况下,必须将 参数设置为 Shrinkablefalse。 如果将 参数设置为 Increment 以外的 0值,则将文件设置为可收缩。 在这种情况下,必须将 参数设置为 Shrinkabletrue
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 模式。

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

CPUCount此处引用 节中 CONFIG 参数的值CPUCount

该值min(CPUCount*2, 8)导致 和 8之间的CPUCount*2值较小。
JumpToNewRegionPercentage 500 跳转到文件的新区域的机会 随机选择区域的开头。 区域的大小是参数值和参数值 MinIOChainLength 之间的随机值 MaxIOChainLength
MinIOChainLength 1 页中的最小区域大小
MaxIOChainLength 100 页中的最大区域大小 2005 SQL Server Enterprise Edition和SQL Server 2000 Enterprise Edition可以提前阅读多达1 024页。

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

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

AuditUser 部分

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

参数 默认值 描述 Comments
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 功能并限制查询延迟。

参数 默认值 描述 Comments
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 操作。

参数 默认值 描述 Comments
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 之和必须小于或等于物理内存总量。 某些测试阶段(如检查点模拟)可能占用大量内存,在运行多个副本时可能会产生内存不足的情况。 如果遇到内存不足错误,可以减少正在运行的实用工具副本数。

References