Closed magixsource closed 6 years ago
亲,你在使用ptrace的时候是不是加了-t参数呢
是呢,加了-t跟踪链路。 是不是使用完要关闭?
-t参数是会让ptrace记录下所有调用的参数和返回值,而且目前我没设计一个上限,如果调用量很大,很容易就会让你内存耗尽。
greys的定位是业务问题排查,对于性能问题排查只能做个大概,建议用专业的jprofiler
能不用-t参数尽量不要用,除非你要排查路径上的故障
如果用了--t参数,结束之后记得用tt -D命令,清理记录
好吧,下次我注意下。
JDK VERSION: 1.8 OS: LINUX GREYS VERSION: 1.7.6.6 基础设施:ALIYUN 严重级别:致命
重现过程: 服务器调试系统,使用greys进JVM进程,并使用ptrace跟踪某个方法,条件有设定--path以及 #cost>x,然后进行pts压测,时间五分钟。压测时因x值太小,日志很多,立刻ctrl+d中断跟踪并ctrl+c退出greys。
过不了多久,服务器jvm内存耗尽,使用jmap把heap打出来,发现com.github.ompc.greys.core.manager.impl.DefaultTimeFragmentManager占用96.47%的内存。