首页 新闻 搜索 专区 学院

Unsafe.defineClass导致CPU占用高

0
悬赏园豆:60 [待解决问题]

https://club.perfma.com/question/258925

这个链接一样的问题

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

jstack显示Unsafe.defineClass正在挂起:

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)

pstack输出的调用栈是这样的

gdb分析在sun.misc.Unsafe.defineClass(Native Method) 本地方法中确实执行了很长时间,这段时间,CPU基本是达到100%

xumenger的主页 xumenger | 初学一级 | 园豆:105
提问于:2021-07-09 00:47
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册