1、案例背景
在案例A中,通过混合负载测试场景验证了E系统的高效性。在本案例中,将通过稳定性测试场景验证E系统的稳定性。
2、场景设计
在稳定性测试场景设计时,执行时间需要考虑系统的运营时间,如5*8h、7*24h等。稳定性测试场景的执行交易量应不少于日平均交易总量,根据项目具体要求可延长执行时长或者考虑跨日执行。
在本案例中,通过分析E系统日常交易分布规律可以得出,E系统 每日高峰交易量集中发生在9:00-12:00和14:00-17:00,故场景时长设计为6小时,另外,选取的交易、交易的比例和交易量可参考案例A中的需求分析。最终设计“目标TPS312.58笔 /s(80%的业务目标),执行时间为6h”的稳定性场景。
3、结果分析
各服务器内存消耗情况
各服务器内存换页情况
从图中可以看出,在执行期间,两个AOR服务在前4h内存持续升高直至最大值(28G)后开始频繁的换页。从稳定性测试结果可以看出,AOR服务器存在内存泄漏问题。
4、经验总结
在本案例中的内存泄漏问题有两个表现,一是内存使用率不断增加直到内存达到最大值;二是达到最大值以后出现频繁的内存换页。这个两个表现是判定内存泄漏的必要条件。对于有些应用系统,在初始化设置的进程数较小,故申请的内存也相对较小;当应用系统的压力逐渐增大时,应用系统会不断创建新的进程,也就不断地申请新内存,直道申请的进程数达到设置的最大值,此时内存也不再继续增长。所以,内存在一段时间内出现不断增长并趋于稳定的现象,并不能判定存在内存泄漏。对于有些应用系统,初始设置的内存数过小导致在较大压力下,内存出现频繁的换页现象,此时只能说明此应用系统的内存不够,并不能说明内存存在泄漏。
在本案例中,场景在4h 内出现内存逐步增长现象,但是未出现换页,直到4h以后内存用尽才出现换页现象,暴露内存泄漏问题。所以应用系统的有些缺陷是短时间内无法暴露出来的,这就显示出稳定性测试的重要性,其中场景的执行时长设置尤为重要。