面向运维的性能测试
每个公司都有自己的基因。做产品起家的,和网络公司不同。对于性能测试,很多的思维还停留在单机时代。于是很多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/
如何提高性能测试效能 衡量价值最简单的逻辑就是以最低成本创造最大价值,简单的公式就是:价值=收益-成本。软件测试的本质是一个发现软件设计/研发缺陷的过程,整体追求的目标是更高的交付质量和过程效率。性能测试作为质量保障范畴的一部分,其价值体现除了降低成本,提升用户体验,还有很重要的一部分就是提升效能。
性能测试从零开始实施指南——性能监控篇 狭义上的APM单指应用程序的监控,如应用的各接口性能和错误监控,分布式调用链路跟踪,以及其他各类用于诊断(内存,线程等)的监控信息等。
阿里云发布性能测试 PTS 2.0:低成本、高效率、多场景压测,业务稳定性保障利器 618 来临,高峰时段的品牌直播间要同时容纳几百万人线上发弹幕、抢货、抢红包,如此大的用户体量、高频交互以及脉冲流量场景,对于后端服务器来说都是不小的挑战。 为了确保线上稳定性以及优质的交互体验,通过性能测试 PTS(Performance Testing Service)进行压测成为很多平台和品牌商的首选。
性能测试系列二 何时介入性能测试 我们知道了压测的概念的介绍,那么很多人都想问,我们应该怎么做,在项目中的流程是怎样的,整个过程需要什么。那么我们来一一道来。
云上的移动性能测试平台 功能决定现在,性能决定未来。欢迎大家围观《云上的移动性能测试平台》, 了解EMAS性能测试平台的能力与规划。
磨刀不误砍柴工,搞定云网络系统性能测试 在本文中,首先简单介绍一下网络性能测试指标重点会关注哪些指标、在开展性能测试时,如何预估系统性能以便合理的规划和部署测试环境,然后会介绍基本的网络连通性测试工具、网络性能测试工具以及在开展性能测试时如何部署监控,更加直观的统计性能指标等。
相关文章
- 性能测试的二八原则
- 软件测试之怎样做好系统测试
- 08dwr - web.xml配置(测试模式配置)
- 42MyCat - 性能测试
- 高阶docker创建jmeter容器性能测试,我做了10年才发现可行的......
- 性能测试,这些被你忽略了吗?
- 性能测试培训基础理论
- 性能测试的几个主要术语及计算
- 性能测试中Disruptor框架ExceptionHandler使用分享
- JMeter性能测试实现与分析分享
- Go语言性能测试
- Golang测试技术
- 《应用程序性能测试的艺术(第2版)》目录—导读
- Flink性能测试case案例
- 《LoadRunner性能测试巧匠训练营》——1.2 生活中的性能测试
- Iperf性能测试的问题小结
- LoadRunner压力测试时监控服务器Linux的资源情况
- 测试人,抬起你的头来——三式
- 性能测试中如何选取被测对象的业务逻辑
- Redis千万级的数据量的性能测试
- C# 监测每个方法的执行次数和占用时间(测试1)