jmeter性能测试分析结果

在进行性能测试之前,需要跟开发问清楚性能测试的目的,是为了找到系统能支撑的最大负载还是为了检查在一定负载下系统的运行情况。如果是后者的话,还需要问一下服务器端设置的最大并发线程数,这样测试时才能设置出合适的负载量。我之前做过的几次http请求的压测,都是为了找系统能支持的最大负载。本次压测,我先在本地测试,给了50个线程并循环100次,结果在测试运行一段时间后就会出现需要等待很长时间的情况,一开始以为是本地网络状况不佳,将脚本放在服务器上跑依然会出现这个情况,后来跟开发沟通知道服务端设置了最大并发量的限制,并且只需要测试一下特定线程下系统的性能情况即可。有了这次经验之后,在之后的性能测试前就知道要尽量问清楚测试需求了。

还有一点需要注意的是缓存对于性能的影响,有无缓存对性能的影响通常是很大的,需要跟开发确认好重点关注的是有缓存还时没有缓存的情况。本次压测,有一个测试类是查询文章subject(话题)属性的,话题属性是实时计算出来的,如果传入的docid是第一次调用该方法,返回话题属性耗时会比较长,之后再对同一个docid查询话题属性时是直接从缓存中取数据返回,耗时大大减少。对获取话题属性的方法进行性能测试,在40个线程、重复100次的压力下,没有缓存和有缓存时的TPS分别为70/s和2200/s,可见两种情况下的差距之大。

一般性能测试的时候还需要关注其他的一些信息,如cpu和内存的使用量,本例中因为线程数较小,对服务器cpu和内存使用量影响不大,所以没有做详细的记录。

压测完成后,需要整理一份较详细的结果反馈给开发。本次压测的结果如下,在没有缓存的情况下,TPS较低,并没有达到开发的预期,需要进行性能调优。

猜你喜欢

转载自www.cnblogs.com/weizixu258079/p/11837494.html
今日推荐