博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
压测出现各种奇葩问题,求围观
阅读量:7225 次
发布时间:2019-06-29

本文共 1352 字,大约阅读时间需要 4 分钟。

 

 

赴xj项目出差,老系统改造的集成到普元平台上,最近在做反洗钱应用压测时,记录下压测过程运到的问题?

压力机:windows7 x64bit,Memory8G,B类局域网,jdk:1.7.0_80;x2

 

1.对反洗钱做功能压测时,出现高cpu现象,top -H -p下查看了消耗的线程:

 

2.根据进程cpu消耗,查看进程下的线程高cpu消耗

pa -ef | grep javatop -d 1ps -mp pid -o THREAD,tid,timeprintf "%x\n" pidjstack  pid | tid  -A 30

  

3.最后定位的线程dump是这样?what are you?

 

 

发现GC一直在运行,这应该是新生代一直在GC。所以我jmap -heap了一下内存信息,信息如下。  圈红的是几个意思?

 

会发现一个问题,Eden 被占满,OLD GER和 PERM GEN 被占满,但是S0,S1却是0。为什么呢?

这个时候,我想到的就是把内存dump下来。看看是什么占用了内存,(其实我感觉程序没做什么,但是这个时候JAVA进程达到了1.15G)。

 

 

但是当我dump的时候 

jmap -dump:live,format=b,file=heap.bin pid  得到如下错误信息: 

Exception in thread "main" java.lang.reflect.InvocationTargetException         ... Caused by: Caused by sun.jvm.hotspot.debugger.UnalignedAddressEwxception 6f006b         at sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal$1.checkAlignment(WindbgDebuggerLocal.java:104)         ...         ...         ...  

然后jmap就关闭了。 

之后查看生成的 bin 文件(1.4G)。

 

但是这个文件拿到MAT或者用jhat均不能解析完成。在MAT报以下错误。 

 

说说我的问题吧!

第一个问题:

Heap Configuration:
...
MaxNewSize = 17592186044415 MB 这个为什么这么多,我jvm最大才4096啊

这里的MaxNewSize为什么多呢?,我内存都才4个G啊。这是jmap的bug吗?

第二个问题:

为什么Eden 被占满,OLD GEN和 PERM GEN 被占满,但是S0,S1却是0。为什么呢? 按照我对JVM的理解,我想的是OLD 被占满 应该S0,S1都要被占满吧。毕竟OLD GEN 的数据是从S1 过去的啊 .S1又是S0过去的啊。Eden -> S0 -> S1 -> Old Gen,这个顺序。现在给我的感觉是,直接Eden -> OldGen。

第三个问题是我dump的文件,用MAT打开报错,这个是我不细心导致的,自身原因。已经解决;

转载于:https://www.cnblogs.com/Alexr/p/9385436.html

你可能感兴趣的文章
数据结构之串
查看>>
我的友情链接
查看>>
lvs+keepalived+nginx+tomcat高可用高性能集群部署
查看>>
实验:搭建主DNS服务器
查看>>
org.gjt.mm.mysql.Driver与com.mysql.jdbc.Driver区别
查看>>
部署exchange2010三合一:之五:功能测试
查看>>
nginx编译安装参数
查看>>
代码托管
查看>>
第一次给ThinkPHP5核心框架提pull request的完整过程
查看>>
U-Mail邮件系统何以誉为信息整合中转枢纽
查看>>
强大的vim配置文件,让编程更随意
查看>>
崛起于Springboot2.X之配置文件详解(10)
查看>>
定时执行程序-Quartz简单实例
查看>>
【CF 应用开发大赛】MyfCMS系统
查看>>
windows下kangle虚拟主机-架设java空间的教程及心得
查看>>
Discuz! X2.5:文件目录结构
查看>>
我的友情链接
查看>>
TCP/IP协议及首部初了解
查看>>
防火墙iptables
查看>>
CUDA搭建
查看>>