zl程序教程

您现在的位置是:首页 >  其他

当前栏目

【rainbowzhou 面试11/101】技术提问--说说你做的大数据性能测试案例

2023-06-13 09:17:27 时间

【rainbowzhou 面试3/101】技术提问--大数据测试是什么,你如何测?中,如果细看的小伙伴会发现通篇仅在基准测试的时候,提到过性能,那么是否在大数据领域基准测试即性能测试呢?本篇带着这个疑问,我将和大家聊聊大数据中的性能测试,性能测试的步骤,以及分享一个大数据性能测试案例,希望对大家有所帮助。

性能测试的类型

性能测试可以分为以下几种类型:

  • 基准测试:大数据基准测试是对大数据应用系统基础能力的测试,这是大数据应用系统基础能力的重要保障
  • 并发测试:并发测试是指测试多个用户并发访问同一个应用、模块和数据时是否产生隐藏的并发问题。
  • 负载测试:负载测试是指逐渐增加负载来测试系统性能的变化,并最终确定在满足性能指标的情况下系统能承受的最大负载量,保证应用在需求范围内正常工作。
  • 压力测试:系统的负载能力是有上限的,当系统过载时,可能出现性能下载,功能异常和拒绝访问等问题,压力测试是验证在较大压力下,系统是否仍然能够正常运行,功能是否正常,以及资源消耗是否正常。
  • 容量测试:容量测试是通过测试预先分析并得到反映软件系统应用特征的某项指标的极限值(如最大并发用户数),确定系统在其极限状态下没有出现任何软件故障或能够保持主要功能正常运行。
  • 稳定性测试:稳定性测试是指对系统的长期稳定运行能力进行测试。在系统运行过程中,对系统施压,观察系统的各种性能指标,以及服务器资源指标。

性能测试的步骤

由上图可知,性能测试主要包含以下3个阶段。

测试准备阶段

在测试准备阶段,我们需要先进行需求分析,并明确性能测试的目标,再根据具体目标和业务场景设计性能测试方案,还需要根据不同场景准备相关测试数据。然后,开发相关的性能测试脚本。

测试执行调优阶段

在性能测试执行调优阶段,若有指标异常,则需要分析相关异常问题并进行性能调优(优化代码和配置)。然后重新进行测试,直到各项指标满足系统要求

测试报告阶段

最后,我们对整个性能测试过程和结果进行总结,并输出性能测试报告。

大数据性能测试案例

(1)工具简介

以对CDP平台为例,采用基于TPC-DS的hive-testbench作为测试工具,对平台底层的Hive进行性能测试。hive-testbench是将TPC-DS/TPC-H针对Hive进行特定封装后的测试工具,包含数据生成、导入和一组测试SQL。其基准结果可用来测量在较为复杂的多用户决策中单一用户模型下的查询响应时间。

TPC-DS是一个面向决策支持系统(decision support system)的包含多维度常规应用模型的决策支持基准,其测试数据包含7张事实表、17张纬度表;其测试内容涵盖对大数据集的统计、报表生成、联机查询、数据挖掘等复杂应用;其工作负载包含99个SQL查询,覆盖SQL99和2003的核心部分以及OLAP,并体现以下特性:

  • 用于分析和测试大规模数据,且测试案例是对实际商业问题进行解答;
  • 测试案例中包含各种业务模型需求多样或复杂的查询(如分析报告型,迭代式的联机分析型,数据挖掘型等);
  • 测试案例基本都有很高的IO负载和CPU计算需求。TPC-DS的这个特点跟大数据的分析挖掘应用非常类似。Hadoop等大数据分析技术也是对海量数据进行大规模的数据分析和深度挖掘,也包含交互式联机查询和统计报表类应用,同时大数据的数据质量也较低,数据分布是真实而不均匀的。因此TPC-DS成为客观衡量多个不同Hadoop版本以及SQL on Hadoop技术的最佳测试集。

(2)测试过程

(3)测试结果

(4)测试总结

以上是案例仅仅是大数据性能测试的其中一部分,实际项目中我们还需要关注大数据组件和数据处理过程的性能,如消息消费、MapReduce任务和数据查询等。如果脚本/任务耗时不符合预期、资源消耗过大情况发生时,我们都需要充分考虑可能存在的性能问题,并对当前性能表象进行分析,之后在权衡整体消耗的前提下,进一步提升服务的性能,直到达到业务或项目的最终要求。

参考资源:

  • 大数据测试技术与实践

看完今天的分享对你是不是有所启发呢,有任何想法都欢迎大家后台私信我,一起探讨交流。