使用 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.com 和 SQLIOSim.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.com、 SQLIOSim.exe和(可选)一个或多个配置文件。 然后在该计算机上运行测试模拟。
如何使用 SQLIOSim
运行 SQLIOSim 时,不需要运行 SQL Server 服务。 事实上,建议不要在 SQLIOSim 运行时运行 SQL Server,因为它们可能会争夺 I/O 资源。
警告
不要指定用于测试的实际SQL Server数据库文件。 SQLIOSim 实用工具将使用随机测试模式覆盖数据,实际SQL Server数据将丢失。
接下来的几个示例演示如何使用 GUI 和命令行运行 SQLIOSim。
示例 1:使用 GUI
转到 C:\Program Files\Microsoft SQL Server\MSSQLXX。<InstanceName>\MSSQL\Binn。
启动 SQLIOSIM.EXE 应用程序。 可以看到“ 文件和配置” 窗口,其中包含一些默认设置。 可以修改这些设置以满足配置需求。
突出显示列表中的第一个 mdx 文件 C:\temp\sqliosim\sqliosim.mdx 。 此文件等效于数据文件。
通过更改文件的位置、大小、最大大小或增量来修改文件设置。 在要模拟数据文件时,请保持日志文件未选中状态。 然后选择“ 应用 ”按钮。
该示例显示文件的位置已更改为 D:\temp\sqliosim\sqliosim.mdx,其大小设置为 2048 MB,其最大大小设置为 4096 MB,其增量大小设置为 64 MB。
使用 ldx 后缀修改第二个文件。 此文件表示事务日志文件的等效项。 请务必保持“ 日志文件 ”复选框处于启用状态。 完成后,选择“ 应用 ”。
可以通过在表格网格内的屏幕中心选择 “新建文件” 选项,将更多文件添加到列表中。 选择“ 新建文件”后,可以键入文件位置并选择剩余的设置。 不要忘记选择“ 应用”。 下面是一个示例:
对配置感到满意后,选择“ 确定 ”按钮。
选择“ 模拟器>启动 ”以运行 SQL IO 模拟。 或者,可以选择 F12 或最左侧带有绿色圆圈的按钮。
等待模拟完成并检查输出。
示例 2:使用命令行工具和配置文件
通过删除 和
File2
节的注释File1
并修改新 SQLIOSim 文件的值来修改FileName
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
使用 配置文件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运行的持续时间。 此值不包括准备阶段和验证阶段。 |
-size
M 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 对于 AuditUser、 ReadAheadUser 和 RandomUser 部分: 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 percent
的CacheHitRatio
值为 。 此值表示为1000
,因为 10 除以 0.01 等于1000
。 百分比参数的最大值为10000
。 - 如果参数类型为数值,并且你为参数分配了非数值,则 SQLIOSim 实用工具会将参数设置为
0
。 - 如果参数类型为
Boolean
,则可以分配给参数true
的有效值为 和false
。 此外,值区分大小写。 SQLIOSim 实用工具会忽略任何无效值。 - 如果一对参数指示最小值和最大值,则最小值不得超过最大值。 例如,参数的值
MinIOChainLength
不得大于参数的值MaxIOChainLength
。 - 如果 参数指示多个页,SQLIOSim 实用工具会根据 SQLIOSim 实用工具处理的文件检查分配给参数的值。 SQLIOSim 实用工具执行此检查,以确保页数不超过文件大小。
配置文件部分
配置文件中有几个部分:
- [CONFIG]
- [RandomUser]
- [AuditUser]
- [ReadAheadUser]
- [BulkUpdateUser]
- [ShrinkUser]
-
[文件<N>] (占位符
<N>
是数字)
以下部分介绍了其中每个部分。
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 | 使用 ReadScatter 或 WriteGather 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 。如果 的 Increment 0 值为 ,则 SQLIOSim 实用工具会将文件设置为不可收缩。 |
Shrinkable |
false | 指示是否可以收缩或扩展文件 | 如果将 参数设置为 Increment 0 ,则将文件设置为不可收缩。 在这种情况下,必须将 参数设置为 Shrinkable false 。 如果将 参数设置为 Increment 以外的 0 值,则将文件设置为可收缩。 在这种情况下,必须将 参数设置为 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 模式。
参数 | 默认值 | 描述 | 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
之和必须小于或等于物理内存总量。 某些测试阶段(如检查点模拟)可能占用大量内存,在运行多个副本时可能会产生内存不足的情况。 如果遇到内存不足错误,可以减少正在运行的实用工具副本数。