关闭

LoadRunner疲劳压测导致内存溢出问题解决

发表于:2016-4-08 10:02

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:W&L    来源:51Testing软件测试网采编

  3)、Online溢出后信息
  Admin
Total mapped                  7486988KB           (reserved=5910828KB)
-              Java heap      1048576KB           (reserved=0KB)
-              GC tables        35084KB
-          Thread stacks        30644KB           (#threads=76)
-          Compiled code      1048576KB           (used=15545KB)
-               Internal         1416KB
-                     OS       141656KB
-                  Other      5041772KB
-            Classblocks         7936KB           (malloced=7752KB #20811)
-        Java class data       130304KB           (malloced=130113KB #94587 in 20811 classes)
- Native memory tracking         1024KB           (malloced=162KB #10)
  Online
Total mapped                 36435708KB           (reserved=34331208KB)
-              Java heap      1048576KB           (reserved=0KB)
-              GC tables        35084KB
-          Thread stacks       431300KB           (#threads=1549)
-          Compiled code      1048576KB           (used=14733KB)
-               Internal         1672KB
-                     OS       141792KB
-                  Other     33575364KB
-            Classblocks         8448KB           (malloced=8174KB #22721)
-        Java class data       140800KB           (malloced=139904KB #103863 in 22721 classes)
- Native memory tracking         4096KB           (malloced=1371KB #10)
  4)、分析内存溢出文件
  支付宝压力测试故障处理报告
  (1)、 概述
  2016年3月30日,功能压力测试时发现当压力机达到200tps时,被管服务器online堆内存持续上涨,并最终出现内存溢出问题,通过分析日志、监控online堆内存增涨曲线初步定位online出现内存泄露问题。
  (2)、 分析
  通过分析日志发现系统出现“OutOfMemoryError”即堆内存溢出问题,即在weblogic启动参数中添加“-XX:+HeapDumpOnOutOfMemoryErro”令系统出现内存溢出时,生成heapdump文件,以便分析引发内存溢出的原因。
  再次压力测试发现系统抛出“OutOfMemoryError”异常,并生成对应的heapdump,使用工具分析heapdump发现server中存在一个【MemorySessionContext】对象占用了【1,145,301,736】字节的数据,通过分析此对象为weblogic的memorySession对象,分析截图如下:
  由此分析引发内存溢出的原因可能如下:
  I、 由于没有设置session超时,导致所有的会话信息在堆内存保存,导致内存溢出;
  II、 由于设置的session超时时间较长,在大并发的情况下,未等到session失效便积累了大量会话,使会话信息占用大量堆内存,导致内存溢出。
  (3)、 处理建议
  I、 请检查应用程序是否设置了session超时;
  II、 请根据应用程序的情况,适当调整session超时的时间;
  III、 有针对性的调整压力测试策略,使压力测试符合真实使用场景;
  IV、 若设置了session超时、并且超时时间已最优,实用场景也没有问题,请适当扩大堆内存,令堆内存设置为大于原来的4G。(注意:不建议这样做,堆内存越大每次Full GC的时间便会加长)
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号