【问题标题】:Load Testing a Database attached to a Network storage device对连接到网络存储设备的数据库进行负载测试
【发布时间】:2009-04-24 19:42:15
【问题描述】:
我们正在研究对数据库的 NAS 系统进行压力测试,主要是想看看它可以承受多少滥用以及它对数据库性能的影响有多大。这是我们计划好的
- 我正在构建一个测试工具,它将启动可配置数量的
运行 sql 查询的线程(也可配置,并考虑
让它能够运行多个查询)
- 使用 SQLIOSim 实用程序模拟 SQL Server 活动
- 将大量数据复制到设备上或从设备上复制下来(同时)
谁能想到我们可以做的任何其他事情(这是可重复的)来给系统施加负载。
【问题讨论】:
标签:
sql-server
performance
load-testing
nas
【解决方案1】:
您还需要模拟数据库和 NAS 之间的网络状况。随着越来越多的流量进入网络,其可实现的利用率会下降,这将严重影响您的性能。
例如。如果您在 1Gbps 网络上有 50 台机器并且网络的利用率接近 100%,那么数据链路层的数据包冲突和重试意味着您的有效总传输量只是您只有两个通信器所能实现的网络潜力的一小部分网络上。更糟糕的是,随着重试次数的增加,有效负载也会增加。面对高峰需求,您会得到一个丑陋的反馈循环。
市面上有许多网络流量模拟器和生成器,但恐怕我从未使用过其中的任何一个。
【解决方案3】:
根据您希望通过负载测试实现的目标,您可能还想考虑使用 SQLIO 而不仅仅是 SQLIOSim。 SQLIOSim 非常适合用于压力测试和模拟 SQL Server 负载,如果检测到任何 IO 错误,它将从绿色变为红色。尽管KKline 提供了一些见解,但它的输出有点神秘。
如果您想连续执行一项操作,例如大型随机读取或大型顺序写入以及介于两者之间的任何操作,SQLIO 非常有用。它还将为您提供一些有用的输出统计信息,您可以将其绘制成图表并用作比较。