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

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

总结

SQLIOSim 工具通过模拟 Microsoft SQL Server I/O 模式在磁盘子系统上运行可靠性和完整性压力测试。 这些测试包括读取、写入、检查点、备份、排序和预读活动。 在新硬件上部署SQL Server之前,请使用 SQLIOSim 验证 I/O 子系统。 该工具独立于SQL Server引擎运行,不需要运行SQL Server。

SQLIOSim 简介

SQLIOSim 模拟SQL Server系统的读取和写入模式(页面读取、检查点、备份、排序、提前读取),以帮助识别潜在的 I/O 问题。 I/O 模拟测试的主要目标是在SQL Server开始使用基础 I/O 子系统之前验证基础 I/O 子系统的可靠性。 有关SQL Server I/O 基础知识的详细信息,请参阅 SQL Server I/O 基础知识

SQLIOSim 不与SQL Server交互,并且不需要运行SQL Server。 在大多数情况下,在SQL Server未运行时运行 SQLIOSim,以避免两个应用程序之间的 I/O 吞吐量竞争。

警告

不要在 SQLIOSim 测试中指向或使用实际的 SQL Server 数据库文件,因为该工具会使用随机测试模式覆盖这些文件。

SQLIOSim 不能保证数据安全或完整性。 该工具提供系统环境的基线测试,并可能暴露潜在的数据完整性问题。

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

如果必须运行性能基准并确定 I/O 吞吐量容量,请改用 Diskspd 工具。

小窍门

在生产部署之前,请在每个新的存储配置上运行 SQLIOSim。 此测试有助于确保系统遵循写入顺序和刷新语义,即使在存在缓存层的情况下也是如此。 此类层包括控制器缓存、固件缓冲和 SAN 优化。

SQLIOSim 位置

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

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 子系统,并验证其可靠性。 为此,请从安装SQL Server的计算机复制 SQLIOSim 文件,并在安装SQL Server之前运行测试。 如果计划使用预配置设置,请复制 SQLIOSim.comSQLIOSim.exe和(可选)一个或多个配置文件。 然后,在该计算机上运行测试模拟。

如何使用 SQLIOSim

运行 SQLIOSim 时,无需运行SQL Server服务。 事实上,在 SQLIOSim 运行时不要运行SQL Server,因为应用程序可以争用 I/O 资源。

警告

为了避免丢失实际SQL Server数据,请不要指定用于测试的实际SQL Server数据库文件。 SQLIOSim 工具使用随机测试模式覆盖数据。

以下示例演示如何使用 GUI 和命令行运行 SQLIOSim。

示例 1:使用 GUI

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

  2. 启动 SQLIOSIM.EXE 应用程序。

  3. “文件和配置 ”窗口中查找可以修改的默认设置,以满足配置需求。

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

  4. 在列表中选择第一个 mdx 文件 ,C:\temp\sqliosim\sqliosim.mdx。 此文件等效于数据文件。

  5. 更改文件设置,例如文件位置、大小、最大大小或增量。 保持“日志文件”选项为空清除状态,因为这样可以模拟数据文件。 然后,选择“ 应用”。

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

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

  6. 更改第二个文件,即具有 ldx 后缀的文件。 此文件表示事务日志文件的等效项。 确保“ 日志文件 ”选项保持选中状态。 完成后,选择“ 应用”。

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

  7. 通过在表格网格内的屏幕中心选择 “新建文件 ”选项,将更多文件添加到列表中。 键入文件位置,然后设置其余选项。 完成后,选择“ 应用”。 示例如下。

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

  8. 对配置感到满意时,请选择“ 确定”。

  9. 若要运行 SQL I/O 模拟,请选择 “模拟器>启动”。 或者,选择 F12 或包含绿色圆圈的最左侧按钮。

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

  10. 等待模拟完成,然后检查输出。

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

  1. 编辑 sqliosim.default.cfg.ini 文件。 删除 File1File2 节的注释,并将 FileName 的值更改为新的 SQLIOSim 文件。 例如:

    [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. 使用配置文件运行 SQLIOSIM.COMC:\temp\sqliosimconfig\sqliosim.default.cfg.ini

    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 工具的配置文件提供高级行为控制。 如果命令行参数和配置文件选项重叠,则命令行参数优先。

参数 说明
-cfg 文件 重写默认配置文件 Sqliosim.cfg.ini。 如果 SQLIOSim 工具找不到文件,则会生成错误。
-save 文件 将生成的配置保存在配置文件中。 使用此选项创建初始配置文件。
file -log 指定错误日志文件名称和错误日志文件路径。 默认文件名 为Sqliosim.log.xml
-dir 迪尔 设置用于创建数据(.mdf)文件和 log (.ldf) 文件的位置。 可以多次运行此命令。 在大多数情况下,此位置是驱动器根或卷装入点。 此位置可以是长路径或 UNC 路径。
-d 设置主运行持续时间。 此值不包括准备阶段和验证阶段。
-size 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。 例如,参数的值 CacheHitRatio10 percent. 此值表示为 1000 10 除以 0.01 等于 1000。 百分比参数的最大值为 10000
  • 如果参数类型为数值,并且为参数分配非数值,则 SQLIOSim 工具会将参数设置为 0
  • 如果参数类型为布尔值,则可以分配给参数 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,则 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
如果 Increment 的值为 0,则 SQLIOSim 工具会将文件设置为不可缩小。
Shrinkable 指示文件是否可以收缩或展开 如果将参数Increment设置为0,请将文件设置为不可收缩。 在这种情况下,必须将参数设置为 Shrinkablefalse。 如果将Increment参数设置为不同于0的值,则将文件设置为可压缩。 在这种情况下,必须将参数设置为 Shrinkabletrue
Sparse false 指示是否应该设置Sparse属性在文件上 对于现有文件,将参数设置为 Sparse false 时,SQLIOSim 工具不会清除Sparse该属性。

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

启用稀疏文件和流,然后执行一次测试。

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

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)
NOTE SQL Server 系统可以有数千个会话。 大多数会话没有活动请求。 在针对动态管理视图(DMV)的 sys.dm_exec_requests 查询中使用 count(*) 函数,以设定此测试参数值的基线。

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

min(CPUCount*2, 8)值为CPUCount*28之间较小的值。
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)
NOTE SQL Server 系统可能有数千个会话。 大多数会话没有活跃请求。 在针对 sys.dm_exec_requests DMV 的查询中使用 count(*) 函数作为建立此测试参数值的基准。

CPUCount 指的是 CONFIG 节中 CPUCount 参数的值。

min(CPUCount*2, 8)值会在CPUCount*28之间生成较小的值。
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(*) 在针对 sys.dm_exec_requests DMV 的查询中,作为建立此测试参数值的基线。

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

min(CPUCount*2, 8) 的值是 CPUCount*28 之间较小的值。
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 系统可能有数千个会话。 大多数会话没有活动请求。 在针对 sys.dm_exec_requests DMV 的查询中使用 count(*) 函数,作为建立此测试参数值的基线。

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

min(CPUCount*2, 8)值为CPUCount*28之间较小的值。
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数据,请不要指定用于测试的实际SQL Server数据库文件。 SQLIOSim 工具使用随机测试模式覆盖数据。

SQLIOSim 错误日志和处理

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

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

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

注意

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

多个副本

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

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

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