正确的存储性能测试:教程
测试企业级存储系统的性能可能既复杂又耗时,这在很大程度上取决于系统的类型和规模。即便如此,性能测试是最重要步骤之一,以确保存储系统以最高效率运行,并且应用程序可满足其目标。
存储性能测试不是通用的操作。测试过程必须满足环境的需要,这具体到提高效率和收益,例如更低的成本、更少的风险和更好的应用程序性能。
为什么存储性能测试很重要
性能测试可以帮助企业更好地了解存储系统并升级或修改其配置。它还可以帮助比较多个存储产品。有效的性能测试的好处包括:
- 提高整体应用程序性能;
- 降低风险和计划外停机时间;
- 更有效地故障排查瓶颈和其他问题;
- 降低整体为维护开销;
- 更明智的设备采购决策;
- 更有效地扩展、升级或重新配置存储系统;
- 降低资本和运营存储成本;
1. 逐步测试你的存储性能
做好测试所需的准备工作
对存储系统进行性能测试可能是一项艰巨的任务。因此,我们需要适当的准备,以避免浪费时间和资源,并尽量减少中断。
定义你的测试目标和评估标准。是什么决定你的测试是成功的并且是完整的?
确定关键参与者和利益相关者。谁将执行哪些任务?测试过程需要告知谁?这会对最终用户产生什么影响?
识别、获取和了解工具。你将需要这些工具来执行你的测试并报告其结果。
建立归档制度。跟踪有关测试环境、测试过程、进行测试时所做的假设以及任何其他重要细节的所有相关信息。
设置测试时间表。明确测试应该何时开始以及需要多长时间。在测试时间长于预期、需要额外测试或出现其他复杂情况时,在时间表中增加一些灵活性。
模拟你的生产环境。在适用且可能的情况下,设置尽可能接近生产环境的测试环境和测试资源,包括测试数据和工作负载。在运行测试之前,你可能需要清除或预处理存储设备。
2. 确定应测试的系统组件
存储系统不仅由SSD或HDD组成。该系统通常包括多个层,每个层都有自己的复杂性和特征。在此过程中,任何地方都可能出现瓶颈:路由器、主机总线适配器、存储控制器、应用程序主机、复制服务器或任何其他组件。
无论你是在处理SAN、NAS、超融合基础设施设备还是其他存储配置,都存在很多可能的故障点,这会使性能测试变得复杂和困难。另一方面,你可能只关心一个或两个组件。例如,你可能需要将磁盘添加到阵列并希望评估其性能影响。在这种情况下,你的项目范围会受到更多限制。无论是哪种情况,请准确确定要测试的组件。
3. 确定为每个存储组件获取哪些指标
在大多数情况下,你需要在适当的情况下获取三个指标。
延迟性。组件完成单个数据请求所需的平均时间。它是发出请求和接收响应之间的时间度量。延迟越低,性能越好。
吞吐量。在特定时期内通过或源自组件的数据量。吞吐量通常是指每秒的位数,例如Kbps、Mbps或Gbps。吞吐量越高,性能越好。
IOPS。存储系统每秒可以处理的I/O操作数。IOPS只关心读写操作的数量。它没有指定每个操作中包含的数据量。较高的IOPS通常优于较低的IOPS,但在评估数据时还要考虑延迟和吞吐量。
评估其他特定于存储的指标,例如缓存使用情况、队列深度、I/O切分或容量。
4. 开始测试过程
- 尽可能长时间地运行测试,以确保你全面了解性能。
- 多次运行测验以验证其结果,并确保你的过程是可重复,同时考虑到任何可能发生变化的变量。
- 确保你的测试具有足够规模,以确保你获得真实的结果。
- 故意使存储系统中的组件失效,以研究对性能的影响。例如,你可以从阵列中拉出磁盘或者使服务器脱机。
- 监控每个步骤以确保你在整个存储性能测试过程中看到一致的结果。
请持续验证你是否收集了正确的数据,你可以轻松访问该信息以用于最终报告。
5. 生成和分发收集的数据
在你收集和汇总结果并将其提供给正确的人之前,性能测试都是不完整的。结果应该采用可读的格式,并且用户可以快速理解并采取行动。报告包含有意义的视觉效果(例如表格、图表和其他图形),可以在很大程度上帮助关键参与者快速了解你的性能测试所揭示的内容。你的报告还应明确指出观察到的任何瓶颈、异常或其他问题。
你的报告应包括有关测试过程本身的基本信息,例如你测试的组件、你执行的测试类型、你用于执行测试的工具,以及执行测试的人员和时间。
在关键利益相关者审查结果后,他们可以解决这种情况。他们可能会购买一个系统而不是另一个系统,升级存储网络,添加应用服务器或更换存储设备。
选择合适的测试工具
性能测试工具将取决于存储系统的类型、系统中的组件、构建组件的供应商以及团队的经验水平。工具应满足特定要求。为此,对于任何存储性能测试工具,请提出以下问题:
- 该工具使性能测试更容易还是更困难?
- 它是否支持企业的特定存储系统、存储类型以及底层平台和基础架构?
- 它是否支持操作环境?
- 它是否获取企业必须跟踪的指标数据?
- 它是否包含满足当前要求和可预见未来要求的功能和配置设置?
- 它是否对正在测试的存储系统增加了开销,或者需要额外的设备来运行?
- 企业能否对其进行自定义以满足特定要求?
- 能否轻松与第三方系统和服务集成?
- 许可费是多少,以及包括哪些支持?
验证设备供应商是否提供满足要求的存储性能测试或监控工具。某些平台(例如Windows Server)包含用于跟踪性能的内置工具。查看可用于测试性能的开源工具。例如,Flexible I/O是一种流行且高度可调的I/O测试器,可在GitHub上找到。
etsme是采用云计算原生技术打造的个人私有云/小型私有云产品,即刻入手etsme,探索更多贴心功能,掌控自己的数字世界。