面向运维的性能测试

简介:

每个公司都有自己的基因。做产品起家的,和网络公司不同。对于性能测试,很多的思维还停留在单机时代。于是很多QA就认为,无非就是测试CPU,memory,disk等参数而已。

  但是随着后台的service程序逐渐增多,service的性能测试,和之前测试一个产品,已经有了很多的不同。这里,就谈谈这次性能测试的一些经验。

  其实之前QA已经做过了一些性能测试。但是有一天我们计划购入机器为产品上线做准备,manager问我如何购买机器。我一看module不少,首先就考虑如何分配这些moudule在不同的机器上,以获得最好的性能。于是我要搞清楚每个module的性能瓶颈,到底是cpu bound,还是IO bound,还是memory bound。

  我就建议QA做了这样的测试。测试结果出来了。从结果看来,扫描病毒的模块CPU还是一个瓶颈,毕竟,扫描病毒是一个很耗时的操作。而web service则需要较多的memory。

  我后面关心的就是那么多模块协同工作,谁是最慢的环节。因为我们之前的设计还是考虑的拓展性,所以,对于最慢的环节,通过增加进程数目和增加机器可以改善。

  结果出来了,QA很快就根据他们的性能,给出了一组最小的机器配置列表。哪些module可以放在一起,每个module至少要起几个进程才不至于出现特别慢的module block整个service的效率。这下就简单了。我们可以把它作为一个service组,以后增加机器,就按照这样的配置成倍的增加。

  其实这样的思路,就是现在所谓的SOA运维。别人问你需要多少机器,如何扩容,你给出的不是几台机器,而是以一个最小的service集群组为单位的系统配置。比如说你的service有3个模块,他们的配置可能是

  模块 数目 特征

  A 1 CPU bound
  B 2 IO bound
  C 1 memory bound

  意味这增加一个A和C,需要两个B配合。

  这样,最小的配置就是 1 cpu,2 disk,1 memory,有可能对于到服务器上面,就是

  8core cpu
  15000 PRM SAS disk *2
  32G memory

  有了这样的最小单位,下面才是真正的性能测试环节,我们要知道,这个最小的service单位,能够有多大的吞吐量。

  于是,尽可以多地喂数据,看看输出的效率。这时,我们关心的已经不是cpu、memory、io这些参数了,因为你的最小配置必须是这样的。你可能会浪费CPU,浪费内存,但是没有办法,因为瓶颈在那里,要增加机器提高整体吞吐量,IO是瓶颈。 我们关心的是,整个最小的service集合到底能有多大的吞吐量。如果我要更大的吞吐量,需要多少个这样的service单位。

  这样的性能测试结果,对产品,对运维才是真正有意义的。这就是从整体的角度去考虑一个service产品。而这也为RD后期的开发起了指导意义,哪个模块是重头戏,对整体而言起决定意义。需要重点调优,哪个模块虽然效率很低,但是调优的优先级可以放低。因为他不是关键。

  这里的关键,就在于强调整体测试。而且这个整体是建立在之前模块测试后的模块配比的基础上的。强调最小service集合的测试。

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
1月前
|
SQL 搜索推荐 测试技术
【Havenask实践篇】完整的性能测试
Havenask是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎,深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。性能测试的目的在于评估搜索引擎在各种负载和条件下的响应速度、稳定性。通过模拟不同的用户行为和查询模式,我们可以揭示潜在的瓶颈、优化索引策略、调整系统配置,并确保Havenask在用户数量激增或数据量剧增时仍能保持稳定运行。本文举例对Havenask进行召回性能测试的一个简单场景,在搭建好Havenask服务并写入数据后,使用wrk对Havenask进行压测,查看QPS和查询耗时等性能指标。
65385 6
|
6月前
|
存储 运维 关系型数据库
运维常见的22个故障排查和10个问题解决技巧大汇总!
运维常见的22个故障排查和10个问题解决技巧大汇总!
320 0
|
3月前
|
缓存 测试技术 数据库
性能测试最佳实践
性能测试最佳实践
|
运维 监控 Devops
如何提高性能测试效能
衡量价值最简单的逻辑就是以最低成本创造最大价值,简单的公式就是:价值=收益-成本。软件测试的本质是一个发现软件设计/研发缺陷的过程,整体追求的目标是更高的交付质量和过程效率。性能测试作为质量保障范畴的一部分,其价值体现除了降低成本,提升用户体验,还有很重要的一部分就是提升效能。
如何提高性能测试效能
|
监控 数据管理 测试技术
性能测试技术笔记(三):如何设计一个压测平台
对于压测平台,或者说各种测试平台,其实很多同学有个误区就是:平台各种高大上牛逼,但往往忽略了开发和维护以及学习使用平台本身的成本。
性能测试技术笔记(三):如何设计一个压测平台
|
消息中间件 SQL 缓存
性能测试从零开始实施指南——性能监控篇
狭义上的APM单指应用程序的监控,如应用的各接口性能和错误监控,分布式调用链路跟踪,以及其他各类用于诊断(内存,线程等)的监控信息等。
性能测试从零开始实施指南——性能监控篇
|
JSON 监控 数据可视化
性能测试|搭建性能监控平台
性能测试|搭建性能监控平台
160 0
性能测试|搭建性能监控平台
|
测试技术 应用服务中间件 调度
性能测试基础了解
性能测试基础了解
97 0
|
测试技术
性能测试系列二 何时介入性能测试
我们知道了压测的概念的介绍,那么很多人都想问,我们应该怎么做,在项目中的流程是怎样的,整个过程需要什么。那么我们来一一道来。
|
测试技术 开发者 Android开发
云上的移动性能测试平台
功能决定现在,性能决定未来。欢迎大家围观《云上的移动性能测试平台》, 了解EMAS性能测试平台的能力与规划。
10122 0
云上的移动性能测试平台