某同学的性能测试的问题和答疑

这篇博客讨论了性能测试中的关键参数设置,如并发数和循环数如何影响CPU和内存使用率。博主强调了在压测中达到90%的CPU利用率目标,并分享了合理设置的例子。同时,文章还探讨了JVM指标、OldGC监控和QPS值的差异,提供了一些监控和调优的方法。
关于性能测试理解:
1、对于压测应用的单台机器的极限情况下,95线,99线,QPS,是否存在OldGC情况。


一般极限情况,CPU或者内存的占用率达到90%左右,为了压测到这个极限值,并发数和循环数的设置是否有什么设置原则?
例如,
1)并发200,循环5000次,共100万请求,压测结果发现没有达到极限值预期
2)并发100,循环10000次,共100万请求,压测结果仍然没有达到极限值预期
3)并发80,循环20000次,共160万请求,恰好复合预期,CPU占比90%左右


上面第3点并发数和循环数这样的设置是否合理?是不是所有的设置都是以达到我的预期目的为条件就可以?(CPU占比90%左右)




2、并发数和循环数,通常情况下,哪个因素的值对CPU和内存的影响更大些?


3、JVM 这个指标的含义和查看以及调优方式有哪些?老师能否解释一下。


4、对于OldGC的监控,压测过程中,可以通过哪些方式查看到?


5、关于聚合报告中记录的QPS值和受压机监控平台上获得的QPS值,理论上这2者是否是应该相等的?如果实际情况中有区别,可能是哪些因素导致的?










1、对于压测应用的单台机器的极限情况下,95线,99线,QPS,是否存在OldGC情况。


A:  95线,99线,是从响应时间的角度进行度量的性能指标,主要评估用户对响应及时性的要求。
QPS是从吞吐量角度度量的性能指标,主要是评估服务的吞吐能力。
OldGC是JVM Old区gc的性能指标,你这里给的不知道具体是指什么,一般包括GC次数,GC时间等。这个指标会对吞吐量和响应时间有一定影响,也要取决于你的gc是怎么配置的。


一般极限情况,CPU或者内存的占用率达到90%左右,为了压测到这个极限值,并发数和循环数的设置是否有什么设置原则?
例如,
1)并发200,循环5000次,共100万请求,压测结果发现没有达到极限值预期
2)并发100,循环10000次,共100万请求,压测结果仍然没有达到极限值预期
3)并发80,循环20000次,共160万请求,恰好复合预期,CPU占比90%左右


上面第3点并发数和循环数这样的设置是否合理?是不是所有的设置都是以达到我的预期目的为条件就可以?(CPU占比90%左右)
A:
并发数是模拟虚拟用户对服务端的操作,并发数越大,向服务端发送请求的速度越快,服务端的压力自然会越大。
循环次数控制的是执行次数,从另外一个角度来看,执行次数越大测试时长就会越长,这个压力对服务的施压持续时间,有些情况下,施压时间比较长,会暴漏一些长时间压力下才会出现的问题,比如资源泄露问题。
这两个是不同的角度,请弄清楚,不要混淆。


2、并发数和循环数,通常情况下,哪个因素的值对CPU和内存的影响更大些?


A:并发数的增加会对服务端的压力逐步增加,但是影响因素不确定,取决于你是什么样的服务,CPU密集型还是网络IO密集型等。总之并发数的增加,相应的资源会随之增加。
循环次数,之前讲了,是压力保持多长时间,持久在这个压力下服务端的表现是否足够稳定。


3、JVM 这个指标的含义和查看以及调优方式有哪些?老师能否解释一下。
A:这个太多了。推荐看看书籍《深入理解Java虚拟机》


4、对于OldGC的监控,压测过程中,可以通过哪些方式查看到?
A:你可以通过java自带的一些工具进行监控,jvisualVM,Jconsole,jstat,jmap等,都可以去监控。


5、关于聚合报告中记录的QPS值和受压机监控平台上获得的QPS值,理论上这2者是否是应该相等的?如果实际情况中有区别,可能是哪些因素导致的?


A:聚合报告上的Qps和监控平台上获取的QPS理论上应该是相当的。
如果不相等,可能有几个原因:
 你客户端统计的qps不对,比如没有做正确性验证,把错误的请求也统计进来了
可能是你监控统计平台统计的方法不对
可能你客户端和服务端统计的角度不一样

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值