求助>Unsafe.defineClass挂起-反射速度慢>
29回复
7月前

Unsafe.defineClass挂起-反射速度慢



请问有人见过这个问题吗?我在Java 8 / SpringBoot 1.5.13 / Tomcat 8.5 Web应用程序中观察到运行时间极长的请求(> 30s)。而且卡顿时间会随程序运行时间变久。但是大部分请求的响应还是正常的。卡顿发生时的cpu负载增长到100%,过几分钟后会自己降下来。

Threaddumps显示Unsafe.defineClass正在挂起:

"http-nio-8080-exec-9" #254 daemon prio=5 os_prio=0 tid=0x00007f8a98b4f000 nid=0x2258 runnable [0x00007f89fb0b0000]
   java.lang.Thread.State: RUNNABLE
	at sun.misc.Unsafe.defineClass(Native Method)
	at sun.reflect.ClassDefiner.defineClass(ClassDefiner.java:63)
	at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:399)
	at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:393)
	at sun.reflect.MethodAccessorGenerator.generateMethod(MethodAccessorGenerator.java:75)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:53)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.beans.BeanUtils.copyProperties(BeanUtils.java:618)
	at org.springframework.beans.BeanUtils.copyProperties(BeanUtils.java:538)
	at com.haigui.stateaction.action_impl.DisputeSubmit.insertDisputeInfo(DisputeSubmit.java:128)

卡顿发生时的JVM情况:
image.png

3118 阅读
请先登录,再评论

回复列表

幻影1113月前

您好,这个问题最近解决了么,我这边也遇到了类似的问题

幻影1113月前
回复 宓:

我这边用了zabbix_agent,关掉这个后重启应用cpu就正常了,只是我不理解为什么挂载了agent就会导致这个问题

回复
3月前
回复 幻影111:

还没有解决呢…你有用阿里云的arms或者别的agent吗?

回复
大空翼7月前

你做线程Dump的时候,正好那个时候CPU使用很高吗

2月前
回复 你假笨:

假大,下掉arms观察了2周之后没有再发现之前的问题了,能不能讲解下为什么javaagent会导致程序的卡顿呀

回复
你假笨3月前
回复 宓:

是的,这块逻辑表示在agent里

回复
3月前
回复 达子:

用pstack看的,不确定是agent导致的,只是看到了有agent image.png

回复
查看更多