oldmanpushcart / greys-anatomy

Java诊断工具
Apache License 2.0
4.02k stars 1.22k forks source link

使用greys致使服务器内存耗尽 #233

Closed magixsource closed 6 years ago

magixsource commented 6 years ago

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%的内存。

oldmanpushcart commented 6 years ago

亲,你在使用ptrace的时候是不是加了-t参数呢

magixsource commented 6 years ago

是呢,加了-t跟踪链路。 是不是使用完要关闭?

oldmanpushcart commented 6 years ago

-t参数是会让ptrace记录下所有调用的参数和返回值,而且目前我没设计一个上限,如果调用量很大,很容易就会让你内存耗尽。

magixsource commented 6 years ago

好吧,下次我注意下。