压力测试定义
通过测试方法,我们可以逐步逼近系统的接近崩溃点。这一点包括系统资源、内存、线程、应用程序、连接数等,目的是让运维和开发人员知道系统的极限在哪里,让业务人员和公司高管知道,如果他们要突破业务的限制,首先要突破系统的限制。系统升级为我们评估业务升级提供了强有力的数据保障。
压力测试的分类
一般压力测试分为两类。
首先,积极的压力测试。通过前面提到的性能测试,我们知道系统基本能承受的压力是多少。在此基础上,我们逐渐加大系统的压力,直到系统接近崩溃或者真正崩溃。简单来说,就是加法。
其次,负压测试,在系统正常运行的情况下,逐渐减少支持系统的资源,看看系统什么时候不能支持正常的业务请求。例如:当系统正常运行时,逐渐减少服务器或微服务的数量,并观察业务请求的状态。说白了,就是减法。
压力测试的步骤
首先,确定测试目标。与性能测试不同,压力测试的目标是系统接近崩溃时。
二是明确重点服务内容。压测其实是有重点的。根据2/8原则,系统中20%的功能使用得最多。我们可以对这些核心功能进行压力测试。
第三,确定负载。这与关键服务的思路是一致的。并非每个服务都有高负载。我们的测试实际上是针对那些负载较大的服务,或者系统中某些服务的负载在一段时间内出现波动的情况。这些是测试目标。
第四,选择环境。和性能测试一样,建议使用生产环境,但是变通方法可以参考上一篇文章的这一部分。
第五,确定监控点,实际上就是监控关注的参数,比如CPU负载、内存使用情况、系统吞吐量等。
第六,为了生成负载,需要从生产环境中获取一些真实的数据作为负载数据源。这部分数据源是根据目标系统的耐久性要求,由脚本驱动并对系统产生影响。
第七,执行测试。这里主要对目标系统和关键部件进行带载测试,并返回监控点的数据。建议团队可以制定测试计划,模拟不同的网络环境和硬件条件进行定期测试。
第八,分析数据。为了测试的目的,分析关键业务的压测数据,了解业务的上限在哪里。对一段时间内负载波动或负载较大的业务进行数据分析,得出业务转型方向。
性能测试和压力测试的区别
如果说性能测试是系统的基线,那么压力测试就是系统的上限或者说是系统的高压线。从基线到高压线是系统可以伸缩的范围。我们可以通过这两行来密切关注系统负载情况。
原创文章,作者:xiaobian,如若转载,请注明出处:https://www.xinyuspace.com/6537.html
用户评论
冷嘲热讽i
压力测试是架构师必备技能,这篇文章真是太棒了!
有8位网友表示赞同!
大王派我来巡山!
90% 的架构师都知道压力测试,那剩下的 10% 呢?
有17位网友表示赞同!
娇眉恨
压力测试很重要,能帮助我们找到系统瓶颈,提高性能。
有8位网友表示赞同!
裸睡の鱼
学到了很多关于压力测试的知识,感谢分享!
有15位网友表示赞同!
何年何念
压力测试是保证系统稳定性的关键,必须重视!
有18位网友表示赞同!
无所谓
文章内容实用,推荐给所有想学习压力测试的架构师。
有19位网友表示赞同!
江山策
压力测试是架构设计中不可或缺的一部分,必须认真对待。
有10位网友表示赞同!
短发
压力测试能帮助我们提前发现问题,避免线上事故发生。
有10位网友表示赞同!
疯人疯语疯人愿
这篇文章太实用了,收藏了!
有7位网友表示赞同!
坠入深海i
压力测试,架构师的必修课!
有17位网友表示赞同!
疲倦了
看了这篇文章,对压力测试有了更深刻的理解。
有13位网友表示赞同!
炙年
压力测试工具那么多,哪个好用?
有16位网友表示赞同!
如你所愿
压力测试需要考虑哪些因素?
有14位网友表示赞同!
巷陌繁花丶
压力测试对系统性能的影响很大,必须谨慎操作。
有18位网友表示赞同!
丢了爱情i
压力测试是保证系统稳定性和可靠性的重要手段。
有12位网友表示赞同!
爱你的小笨蛋
压力测试可以帮助我们提高系统的性能和可扩展性。
有19位网友表示赞同!
海盟山誓总是赊
压力测试的目的是模拟真实用户场景,测试系统的性能和稳定性。
有7位网友表示赞同!
封锁感觉
压力测试是每个架构师都应该掌握的技能。
有14位网友表示赞同!
寒山远黛
这篇文章对压力测试的讲解很透彻,值得推荐。
有11位网友表示赞同!
各自安好ぃ
压力测试是系统上线前的必备环节,不容忽视。
有16位网友表示赞同!