01 记录一次 TaskManager 中 old 被全部占用的问题

2024-02-19 15:36

本文主要是介绍01 记录一次 TaskManager 中 old 被全部占用的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

问题的上下文如下, 再给定的 flink003 节点上面的 TaskManager 节点对应的 vm old 几乎被占用完了 
另外还有一个明显的问题是 fgc 的次数明显异常, ygc 才八千次, fgc 就六千次了 ?
我们这里的主题主要是 探索一下 主要占用 old 的对象都是什么 ?, 以及一个 大致的原因 

[root@ecs-flink-003 ~]# jps
6915 WrapperSimpleApp
583516 Main
1240520 TaskManagerRunner
997810 Jps
[root@ecs-flink-003 ~]# jstat -gcutil 1240520S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT0.00   0.00  59.54  99.43  95.23  89.37   7874   41.102  5832 1268.308 1309.410
[root@ecs-flink-003 ~]# jmap -heap 1240520
Attaching to process ID 1240520, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.60-b23
using thread-local object allocation.
Parallel GC with 13 thread(s)
Heap Configuration:MinHeapFreeRatio         = 0MaxHeapFreeRatio         = 100MaxHeapSize              = 9374269440 (8940.0MB)NewSize                  = 3124756480 (2980.0MB)MaxNewSize               = 3124756480 (2980.0MB)OldSize                  = 6249512960 (5960.0MB)NewRatio                 = 2SurvivorRatio            = 8MetaspaceSize            = 21807104 (20.796875MB)CompressedClassSpaceSize = 1073741824 (1024.0MB)MaxMetaspaceSize         = 5494538240 (5240.0MB)G1HeapRegionSize         = 0 (0.0MB)
Heap Usage:
PS Young Generation
Eden Space:capacity = 2886729728 (2753.0MB)used     = 1718836800 (1639.2105102539062MB)free     = 1167892928 (1113.7894897460938MB)59.54269924641868% used
From Space:capacity = 19922944 (19.0MB)used     = 0 (0.0MB)free     = 19922944 (19.0MB)0.0% used
To Space:capacity = 119013376 (113.5MB)used     = 0 (0.0MB)free     = 119013376 (113.5MB)0.0% used
PS Old Generationcapacity = 6249512960 (5960.0MB)used     = 6214046888 (5926.176918029785MB)free     = 35466072 (33.823081970214844MB)99.43249862466082% used
27319 interned Strings occupying 2961728 bytes.

查找占用 old 的对象

jmap histo $pid 列出占用空间对象的 top10
可以看到的是, 整个 heap 9g, 这里 char[] 占用了 5.5g ?
接下来看一下 这都是一些什么字符串 
jmap histo $pid 列出占用空间对象的 top10 

 num     #instances         #bytes  class name
----------------------------------------------1:       1381831     5460743720  [C2:        167040     2576855560  [B3:       1180994       28343856  java.lang.String4:         87163       28120712  [I5:        625826       20026432  java.util.HashMap$Node6:        566321       18122272  java.util.ArrayList$Itr7:        401111       17644992  [Ljava.lang.Object;8:        407890       16315600  java.util.TreeMap$Entry9:         74192       10258376  [Ljava.util.HashMap$Node;10:        155426        7460448  java.util.HashMap

jmap dump 一下堆空间信息 
jhat 分析一下 char[] 的实例, 可以看到 73w 的 char[] 的 oop 

获取 top150, 可以看到 前面有 132 个占用空间为 37410664 的字符串[合计 35.6M], 随机抽取一个查看对应的 java.lang.String 的引用  

(0x6113f7818,37410664)
(0x6823e7450,37410664)
(0x6227dcf10,37410664)
(0x61c793270,37410664)
(0x6c4f400b0,37410664)
(0x5daafa468,37410664)
(0x6742d9968,37410664)
(0x5be2ccbd8,37410664)
(0x5d6262ba0,37410664)
(0x5d86294e8,37410664)
(0x6b1605990,37410664)
(0x5d3e02f48,37410664)
(0x6ad9e71b8,37410664)
(0x6b5ddd5e0,37410664)
(0x6b39cfa28,37410664)
(0x5bbdceca0,37410664)
(0x7291583b8,37410664)
(0x6be14aea0,37410664)
(0x71892fe80,37410664)
(0x6c050df58,37410664)
(0x6c290da48,37410664)
(0x6bbd0cd60,37410664)
(0x724908728,37410664)
(0x7434e53b0,37410664)
(0x7410df180,37410664)
(0x7164cb2b0,37410664)
(0x7140c61f8,37410664)
(0x726cb5e90,37410664)
(0x6068aa018,37410664)
(0x60449ed78,37410664)
(0x67dc82888,37410664)
(0x6a6c70918,37410664)
(0x759050368,37410664)
(0x5ee02fba8,37410664)
(0x756c2f0d0,37410664)
(0x5f042e668,37410664)
(0x5e44157c8,37410664)
(0x705c00000,37410664)
(0x5e67c2f30,37410664)
(0x750bb8d00,37410664)
(0x5dfbb5960,37410664)
(0x5c0f8c5a0,37410664)
(0x6ebb7eda8,37410664)
(0x5e8b70fe8,37410664)
(0x73af40540,37410664)
(0x60ba43330,37410664)
(0x6986117b0,37410664)
(0x69d9fbb20,37410664)
(0x5a5de3c58,37410664)
(0x6155b2798,37410664)
(0x68d1a4140,37410664)
(0x61795ff00,37410664)
(0x6dc95b450,37410664)
(0x646157c70,37410664)
(0x6d0948630,37410664)
(0x6ded08bb8,37410664)
(0x6485053d8,37410664)
(0x6418f83f8,37410664)
(0x6d2cf5d98,37410664)
(0x6f30f5408,37410664)
(0x6670efef0,37410664)
(0x6cc0e87a8,37410664)
(0x59fcbe430,37410664)
(0x6e10b6320,37410664)
(0x64a8b2b40,37410664)
(0x6f54a3aa0,37410664)
(0x6d50a3500,37410664)
(0x66949d760,37410664)
(0x6f789c870,37410664)
(0x66288fde0,37410664)
(0x64cc602a8,37410664)
(0x66b84aec8,37410664)
(0x5ffc3ed58,37410664)
(0x5b641a758,37410664)
(0x5b87c7ec0,37410664)
(0x74bfb1b48,37410664)
(0x6e93924d0,37410664)
(0x66e7683b0,37410664)
(0x74e35f2b0,37410664)
(0x73632ec70,37410664)
(0x6c771b818,37410664)
(0x5f3b08b80,37410664)
(0x7386dc3d8,37410664)
(0x5f82d3118,37410664)
(0x5f5ec5ca0,37410664)
(0x7092bd528,37410664)
(0x7026b3e18,37410664)
(0x7302a5180,37410664)
(0x6e6ea31d0,37410664)
(0x72de9c4a8,37410664)
(0x598295828,37410664)
(0x59a693d70,37410664)
(0x71fa52ec0,37410664)
(0x624e3fe20,37410664)
(0x71d63b2c0,37410664)
(0x67a630c70,37410664)
(0x65a217480,37410664)
(0x657e140f8,37410664)
(0x655a0a5c0,37410664)
(0x595e042c8,37410664)
(0x5ab9fd1a0,37410664)
(0x65c5d1ec0,37410664)
(0x70f1ceb80,37410664)
(0x70cdc6168,37410664)
(0x6fd5be660,37410664)
(0x63c1ab370,37410664)
(0x6781aada8,37410664)
(0x5addaa908,37410664)
(0x6331a90b0,37410664)
(0x5c8da28c0,37410664)
(0x5d05a04a0,37410664)
(0x5c6994678,37410664)
(0x5c4593380,37410664)
(0x5b0169d68,37410664)
(0x635556818,37410664)
(0x65353a8a8,37410664)
(0x637903f80,37410664)
(0x745d01058,37410664)
(0x5a34e5700,37410664)
(0x686ce2fa8,37410664)
(0x6f08d5fe8,37410664)
(0x639cb16e8,37410664)
(0x62c4964a8,37410664)
(0x6a346fc38,37410664)
(0x692c5d268,37410664)
(0x60f04a0b0,37410664)
(0x6848428b0,37410664)
(0x75b841180,37410664)
(0x68002fff0,37410664)
(0x620416630,37410664)
(0x69500a9d0,37410664)
(0x6a1002310,37410664)
(0x650fdbd00,263952)
(0x5c07c42f8,263952)
(0x6f0789308,263952)
(0x6c7381e28,263952)
(0x608f3df20,263952)
(0x650efeff8,263952)
(0x608ef4c98,263952)
(0x6f06ddef8,263952)
(0x6766d2c48,263952)
(0x5c06bf0b8,263952)
(0x70caaada0,263952)
(0x5be27f1f0,263952)
(0x608e79610,263952)
(0x6c4e1fa80,263952)
(0x5da9eed50,263952)
(0x5eb1d1400,263952)
(0x5eb144398,263952)
(0x74ad0e4e0,263952)

可以找到一个 LinkedHashMap, 其中某一个 key 为 "extract-rule.xml" 的 entry 即为我们这里的这个 大对象 

代码中 track 一下 extract-rule.xml 加载的地方, StartJobEngineApp 初始化的地方 
后面将 "extract-rule.xml" → 文件内容, transfer 到了 configFileBase64Map 里面, 对应的就是我们上面看到的这个 LinkedHashMap 

那么这个 "extract-rule.xml" 为什么会被加载 132 次呢 ? 又为什么没有被 gc 掉 ?
继续往后面看, 会看到 SOURCE, TRANSFORMATION, SINK 等几个 operator 都持有一份 "extract-rule.xml" 的内容 
也就是一个 job, 假设只有最简单的 SOURCE → 1个TRANSFORMATION → SINK 的步骤, 那么这个 "extract-rule.xml" 的内容 会被存储 4次 
这个 LinkedHashMap 是被存储在 ConfigFileObjectService 中
最开始的 usercode 中的 ConfigFileObjectService 是 classloader 加载创建的, 后面的 SOURCE/TRANSFORMATION/SINK 中的 ConfigFileObjectService  是算子需要的上下文, 由 usercode 传递过来 反序列化生成的 

以 MyFlinkKafkaConsumerXSource 为例, 看一下 这一系列引用关系  

以 TransFieldToStandardXCommand 为例, 会被封装到 PreprocessProcessFuncImpl 中与 flink 进行交互, 引用关系如下 

 

以 EsDeployDefImpXSink 为例, 看一下 这一系列引用关系  

那么 我这里的情况是从 flink 的控制台已经看不到任何的 job 了, 为什么 这些对象还被强引用了 ? 
我们回到 jmap -histo 的结果, 可以找到 35 个 com.HelloWorld.flink.common.ConfigFileObjectService 的 class, 有的有 4 个 instance, 有的有 5个, 有的有 6个 
另外还有 35 个 org.apache.flink.util.ChildFirstClassLoader 这里可以大致判断出 flink 的 job 之间的隔离大致是通过 classloader 进行隔离的 

 num     #instances         #bytes  class name
----------------------------------------------592:            35           3360  org.apache.flink.util.ChildFirstClassLoader
1724:             6            144  com.HelloWorld.flink.common.ConfigFileObjectService
1725:             6            144  com.HelloWorld.flink.common.ConfigFileObjectService
1726:             6            144  com.HelloWorld.flink.common.ConfigFileObjectService
1727:             6            144  com.HelloWorld.flink.common.ConfigFileObjectService
1728:             6            144  com.HelloWorld.flink.common.ConfigFileObjectService
1729:             6            144  com.HelloWorld.flink.common.ConfigFileObjectService
1836:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1837:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1838:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1839:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1840:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1841:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1842:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1843:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1844:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1845:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1846:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1847:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1848:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1849:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1850:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1851:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
1852:             5            120  com.HelloWorld.flink.common.ConfigFileObjectService
2068:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2069:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2070:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2071:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2072:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2073:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2074:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2075:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2076:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2077:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2078:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
2079:             4             96  com.HelloWorld.flink.common.ConfigFileObjectService
Total       3089420     7578685856

flink 的 /jar/$jarId/run 的执行过程

我们上面 可以大致判断出 flink 的 job 之间的隔离大致是通过 classloader 进行隔离的, 但是 还需要实锤 
flink rest api 这部分是自己基于 netty 开放的服务, 我们这里的 /jar/$jarId/run 处理请求的是 JarRunHandler 
这里我们需要关注的是当前线程是 Flink-DispatcherRestEndpoint-thread-*, 是 jobManager 创建的时候开放 Rest 服务的时候创建的一组线程池, 用于执行 XXHandler 里面的一部分异步处理 
当前线程的 contextClassloader 是一个 ChildFirstClassloader, 另外加载 mainClazz 的也是这个 ChildFirstClassloader 
这部分的代码体现也可以再这上面找到, 具体选择 classloader 也有策略控制, 这里不在赘述, 总之我们这里的情况是 选择的是 ChildFirstClassloader 

堆栈信息再往前推进一些, 可以看到 Flink-DispatcherRestEndpoint-thread-* 是执行 usercode 的时候将 contextClassloader 换成了 ChildFirstClassloader, 执行完成将 contextClassloader
 切换回去, 常见的操作 

这里可以看到 job 中 usercode 这一部分代码的执行是通过 classloader 进行隔离的 

TaskManager 这边, 同一个 jvm 同一个 job 会对应同一个 ChildFirstClassLoader, 创建是 Task 初始化的时候创建的 

为什么 job 已经执行完成了, ConfigFileObjectService 相关的对象没有被回收?
抽取一个 ConfigFileObjectService 查看一下, 引用这个对象的只有 ConfigFileObjectService.uniqueInstance, 是一个静态字段, 意味着需要回收 这个 ConfigFileObjectService  对象, 是需要卸载类 ConfigFileObjectService 
根据规范 卸载类的条件是 其对应的 classloadaer 被回收 

我们抽取一个 ChildFirstClassLoader, 来查看一下, 可以明显看到的是还有 诸多 java.lang.Thread 还引用了当前 ConfigFileObjectService 
gc 的时候, java.lang.Thread oop 本身以及其 stack 是 gc roots 的一部分, 既然这么多 alive 的 java.lang.Thread 还引用着 ChildFirstClassLoader, classloader 是被 gc 不掉 
当然 不排除其他强应用, 充分不必要 条件

一个模拟的 case

这里根据场景 模拟了一个 测试用例, 依赖的 jar为 flink-core 使用 ChildFirstClassLoader 
Test18ChildFirstClassloader 

package com.hx.test;
import org.apache.flink.util.ChildFirstClassLoader;
import java.io.File;
import java.lang.reflect.Method;
import java.net.URL;
public class Test18ChildFirstClassloader {// Test18ChildFirstClassloader// -Xmx128M -XX:+UseSerialGC -verbose:classpublic static void main(String[] args) throws Exception {File classFile = new File("D:\\WorkStations\\IdeaWorkStations\\HelloWorld\\target\\classes");URL[] classpathes = new URL[]{classFile.toURI().toURL()};// create many namespace by classloaderint namespaceCount = 50;
//        List<ChildFirstClassLoader> classloaderList = new ArrayList<>();for (int i = 0; i < namespaceCount; i++) {ChildFirstClassLoader classloader = new ChildFirstClassLoader(classpathes,Test18ChildFirstClassloader.class.getClassLoader(),new String[]{});
//            classloaderList.add(classloader);ClassLoader oldContextClassloader = Thread.currentThread().getContextClassLoader();Thread.currentThread().setContextClassLoader(classloader);try {Class clazz = classloader.loadClass("com.hx.test.Test18StaticHolder");Method method = clazz.getDeclaredMethod("main", String[].class);method.invoke(null, new Object[]{new String[]{"1", "2"}});} finally {Thread.currentThread().setContextClassLoader(oldContextClassloader);}}System.gc();System.in.read();}
}

Test18StaticHolder 

package com.hx.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
// Test18StaticHolder
public class Test18StaticHolder {private static Test18StaticHolder INSTANCE;public static String HOLDER = null;static {INSTANCE = new Test18StaticHolder();try {HOLDER = readContent("D:\\WorkStations\\IdeaWorkStations\\Tmp\\06_jysy_logs\\whale-client.log.0");} catch (Exception e) {e.printStackTrace();}}// Test18StaticHolderpublic static void main(String[] args) {System.out.println(" Test18StaticHolder proceed ... ");new Thread(() -> {// do bizsleep(10_000);}, "Test18StaticHolderAliveThread").start();}// readContentpublic static String readContent(String path) throws Exception {BufferedReader reader = new BufferedReader(new FileReader(new File(path)));StringBuilder sb = new StringBuilder();String line = null;while ((line = reader.readLine()) != null) {sb.append(line).append("\r\n");}return sb.toString();}// sleeppublic static void sleep(long sleepInMs) {try {Thread.sleep(sleepInMs);} catch (Exception e) {e.printStackTrace();}}
}

jmap -histo $pid

 num     #instances         #bytes  class name
----------------------------------------------1:          4418      125602984  [C2:           189         797560  [I3:          4134          99216  java.lang.String4:           842          95856  java.lang.Class5:          1391          74504  [Ljava.lang.Object;6:           156          64560  [B7:           836          33440  java.util.TreeMap$Entry8:           268          25696  [Ljava.util.HashMap$Node;9:           689          22048  java.util.HashMap$Node10:            58          21808  java.lang.Thread11:           284          18176  java.net.URL12:           168          13440  [Ljava.util.WeakHashMap$Entry;13:           272          13056  java.util.HashMap14:           231          12936  java.lang.invoke.MemberName15:           279          11160  java.lang.ref.SoftReference16:           109          10464  java.util.jar.JarFile$JarFileEntry17:           244           9760  java.util.LinkedHashMap$Entry18:           300           9600  java.util.concurrent.ConcurrentHashMap$Node19:           396           9504  java.util.LinkedList$Node20:           226           9040  java.lang.ref.Finalizer21:           252           8928  [Ljava.lang.String;22:           168           8064  java.util.WeakHashMap23:           117           7488  java.util.jar.JarFile24:           141           6768  sun.misc.URLClassPath$JarLoader25:           119           6664  sun.nio.cs.UTF_8$Encoder26:           202           6464  java.util.LinkedList27:           196           6272  java.lang.invoke.LambdaForm$Name28:           256           6144  java.lang.Long29:           244           5856  java.io.ExpiringCache$Entry30:            94           5640  [Ljava.lang.ref.SoftReference;31:           174           5568  java.lang.ref.ReferenceQueue32:           166           5312  java.util.Hashtable$Entry33:           128           5120  java.lang.invoke.MethodType34:           103           4944  java.util.zip.Inflater35:            48           4608  org.apache.flink.util.ChildFirstClassLoader36:           110           4400  java.security.AccessControlContext37:           123           4144  [Ljava.lang.Class;38:            55           4128  [Ljava.util.Hashtable$Entry;39:           129           4128  java.lang.invoke.MethodType$ConcurrentWeakInternSet$WeakEntry40:           256           4096  java.lang.Byte41:           256           4096  java.lang.Integer42:           256           4096  java.lang.Short43:           102           4080  java.security.ProtectionDomain44:           169           4056  java.util.ArrayList45:           117           3744  java.util.zip.ZipCoder46:           111           3552  java.lang.invoke.DirectMethodHandle47:           204           3264  java.lang.Object48:           102           3264  java.util.Vector49:           101           3232  java.security.CodeSource50:            68           3056  [Ljava.lang.invoke.LambdaForm$Name;51:            63           3024  java.lang.invoke.LambdaForm52:            28           2912  [Ljava.lang.invoke.MethodHandle;53:           176           2816  java.lang.ref.ReferenceQueue$Lock54:           117           2808  java.util.ArrayDeque55:            49           2744  java.lang.invoke.MethodTypeForm56:             7           2544  [Ljava.util.concurrent.ConcurrentHashMap$Node;57:            52           2496  java.util.Hashtable58:           103           2472  java.util.zip.ZStreamRef59:            50           2400  sun.misc.URLClassPath60:            96           2304  java.lang.invoke.LambdaForm$NamedFunction61:            95           2280  [Ljava.security.ProtectionDomain;62:           128           2048  java.lang.Character63:            62           1984  java.io.File64:            38           1824  sun.util.locale.LocaleObjectCache$CacheEntry65:            52           1664  java.security.Permissions66:           102           1632  [Ljava.security.Principal;67:            51           1632  java.io.FilePermission68:           102           1632  java.security.ProtectionDomain$Key69:            51           1632  java.util.Stack70:            50           1600  java.lang.invoke.BoundMethodHandle$Species_L71:            18           1440  java.lang.reflect.Constructor72:            51           1224  java.io.FilePermissionCollection73:            49           1176  sun.misc.URLClassPath$FileLoader74:            23           1104  java.nio.HeapCharBuffer75:             1           1040  [Ljava.lang.Byte;76:             1           1040  [Ljava.lang.Integer;77:             1           1040  [Ljava.lang.Long;78:             1           1040  [Ljava.lang.Short;79:             1           1040  [[C80:            26           1040  java.io.ObjectStreamField81:            27            864  com.intellij.rt.debugger.agent.CaptureAgent$InstrumentPoint82:            50            800  java.util.HashSet83:            33            792  java.lang.StringBuilder84:            19            760  sun.util.locale.BaseLocale$Key85:             9            656  [S86:             3            624  [Ljava.lang.invoke.LambdaForm;87:            19            608  java.util.Locale88:            19            608  sun.util.locale.BaseLocale89:             9            576  java.util.concurrent.ConcurrentHashMap90:            10            560  sun.invoke.util.Wrapper91:             1            528  [Ljava.lang.Character;92:            13            520  java.lang.invoke.MethodHandleImpl$IntrinsicMethodHandle93:             6            456  [Lsun.invoke.util.Wrapper;94:            19            456  java.util.Locale$LocaleKey95:            13            416  java.lang.invoke.SimpleMethodHandle96:            17            408  java.util.jar.Attributes$Name97:            10            400  java.lang.invoke.DirectMethodHandle$Accessor98:             1            384  java.lang.ref.Finalizer$FinalizerThread99:             6            384  java.nio.DirectByteBuffer100:             1            376  java.lang.ref.Reference$ReferenceHandler101:            14            336  java.lang.invoke.LambdaFormEditor$Transform$Kind102:             6            336  java.nio.DirectLongBufferU103:            10            320  java.lang.OutOfMemoryError104:            10            320  java.lang.StackTraceElement105:            13            312  java.lang.RuntimePermission106:            11            304  [Ljava.io.ObjectStreamField;107:             2            304  [Ljava.lang.Thread;108:            12            288  java.lang.invoke.Invokers109:             9            288  jdk.internal.org.objectweb.asm.Type110:            12            288  sun.misc.MetaIndex111:             8            248  [Ljava.lang.invoke.LambdaForm$BasicType;112:             6            240  [Ljava.lang.invoke.BoundMethodHandle$SpeciesData;113:             5            240  java.util.TreeMap114:             4            224  java.lang.Package115:             9            216  sun.reflect.NativeConstructorAccessorImpl116:             7            208  [Ljava.lang.invoke.LambdaForm$NamedFunction;117:             5            200  java.lang.invoke.BoundMethodHandle$SpeciesData118:             5            200  java.util.WeakHashMap$Entry119:             6            192  java.lang.invoke.LambdaForm$BasicType120:             8            192  java.lang.invoke.MethodHandleImpl$Intrinsic121:             2            176  java.lang.reflect.Method122:             7            168  java.net.NetPermission123:             4            160  java.io.FileDescriptor124:             3            144  java.nio.HeapByteBuffer125:             3            144  java.util.Properties126:             6            144  sun.misc.PerfCounter127:             9            144  sun.reflect.DelegatingConstructorAccessorImpl128:             2            128  java.io.ExpiringCache$1129:             3            120  java.lang.invoke.BoundMethodHandle$Species_LL130:             2            112  [Ljava.lang.invoke.MethodType;131:             2             96  java.lang.ThreadGroup132:             3             96  java.lang.ThreadLocal$ThreadLocalMap$Entry133:             3             96  java.security.BasicPermissionCollection134:             4             96  sun.misc.JarIndex135:             1             96  sun.misc.Launcher$AppClassLoader136:             2             96  sun.nio.cs.StreamEncoder137:             3             88  [Ljava.lang.StackTraceElement;138:             1             88  sun.misc.Launcher$ExtClassLoader139:             1             80  [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry;140:             2             80  java.io.BufferedWriter141:             2             80  java.io.ExpiringCache142:             2             80  java.lang.ClassLoader$NativeLibrary143:             5             80  java.lang.ThreadLocal144:             2             80  java.lang.invoke.MethodHandleImpl$AsVarargsCollector145:             2             80  sun.nio.cs.UTF_8$Decoder146:             1             72  [Ljava.lang.invoke.LambdaFormEditor$Transform$Kind;147:             3             72  java.security.SecurityPermission148:             3             72  java.util.Collections$SynchronizedSet149:             3             72  java.util.concurrent.atomic.AtomicLong150:             2             64  [J151:             2             64  java.io.FileInputStream152:             2             64  java.io.FileOutputStream153:             2             64  java.io.PrintStream154:             2             64  java.lang.ClassValue$Entry155:             2             64  java.lang.VirtualMachineError156:             2             64  java.lang.ref.ReferenceQueue$Null157:             1             56  [[I158:             1             56  java.lang.invoke.LambdaFormEditor$Transform159:             1             56  java.net.SocketPermission160:             1             48  [Ljava.lang.invoke.MethodHandleImpl$Intrinsic;161:             2             48  java.io.BufferedOutputStream162:             1             48  java.io.BufferedReader163:             2             48  java.io.File$PathStatus164:             2             48  java.io.OutputStreamWriter165:             1             48  java.lang.ProcessEnvironment166:             1             48  java.lang.invoke.BoundMethodHandle$Species_L4167:             2             48  java.lang.invoke.MethodHandles$Lookup168:             2             48  java.lang.reflect.ReflectPermission169:             2             48  java.nio.charset.CoderResult170:             3             48  java.nio.charset.CodingErrorAction171:             2             48  java.util.Collections$SetFromMap172:             3             48  java.util.concurrent.atomic.AtomicInteger173:             2             48  sun.instrument.TransformerManager174:             2             48  sun.misc.NativeSignalHandler175:             2             48  sun.misc.Signal176:             1             48  sun.nio.cs.StreamDecoder177:             2             40  [Lsun.instrument.TransformerManager$TransformerInfo;178:             1             40  [[Ljava.lang.invoke.LambdaForm$Name;179:             1             40  java.io.BufferedInputStream180:             1             40  java.util.IdentityHashMap181:             1             40  sun.nio.cs.StandardCharsets$Aliases182:             1             40  sun.nio.cs.StandardCharsets$Cache183:             1             40  sun.nio.cs.StandardCharsets$Classes184:             1             40  sun.nio.cs.ext.ExtendedCharsets185:             1             32  [Ljava.lang.OutOfMemoryError;186:             1             32  [Ljava.lang.ThreadGroup;187:             2             32  com.intellij.rt.debugger.agent.CaptureAgent$ParamKeyProvider188:             1             32  java.io.WinNTFileSystem189:             1             32  java.lang.ArithmeticException190:             2             32  java.lang.Boolean191:             1             32  java.lang.NullPointerException192:             2             32  java.nio.ByteOrder193:             1             32  java.util.Collections$UnmodifiableMap194:             1             32  java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl195:             1             32  sun.instrument.InstrumentationImpl196:             2             32  sun.net.www.protocol.jar.Handler197:             1             32  sun.nio.cs.StandardCharsets198:             1             24  [Ljava.io.File$PathStatus;199:             1             24  [Ljava.lang.ClassValue$Entry;200:             1             24  [Ljava.net.URL;201:             1             24  [Lsun.launcher.LauncherHelper;202:             1             24  com.intellij.rt.debugger.agent.CaptureAgent$FieldKeyProvider203:             1             24  java.io.FileReader204:             1             24  java.lang.ClassValue$Version205:             1             24  java.lang.Double206:             1             24  java.lang.ThreadLocal$ThreadLocalMap207:             1             24  java.lang.invoke.MethodHandleImpl$4208:             1             24  java.lang.invoke.MethodType$ConcurrentWeakInternSet209:             1             24  java.security.AllPermissionCollection210:             1             24  java.util.BitSet211:             1             24  java.util.Collections$EmptyMap212:             1             24  java.util.Collections$UnmodifiableRandomAccessList213:             1             24  java.util.Locale$Cache214:             1             24  sun.instrument.TransformerManager$TransformerInfo215:             1             24  sun.launcher.LauncherHelper216:             1             24  sun.nio.cs.ISO_8859_1217:             1             24  sun.nio.cs.ThreadLocalCoders$1218:             1             24  sun.nio.cs.ThreadLocalCoders$2219:             1             24  sun.nio.cs.US_ASCII220:             1             24  sun.nio.cs.UTF_16221:             1             24  sun.nio.cs.UTF_16BE222:             1             24  sun.nio.cs.UTF_16LE223:             1             24  sun.nio.cs.UTF_8224:             1             24  sun.reflect.NativeMethodAccessorImpl225:             1             24  sun.util.locale.BaseLocale$Cache226:             1             16  [D227:             1             16  [F228:             1             16  [Ljava.lang.Throwable;229:             1             16  [Ljava.security.cert.Certificate;230:             1             16  [Z231:             1             16  com.hx.test.Test18StaticHolder232:             1             16  com.hx.test.Test18StaticHolder233:             1             16  com.hx.test.Test18StaticHolder234:             1             16  com.hx.test.Test18StaticHolder235:             1             16  com.hx.test.Test18StaticHolder236:             1             16  com.hx.test.Test18StaticHolder237:             1             16  com.hx.test.Test18StaticHolder238:             1             16  com.hx.test.Test18StaticHolder239:             1             16  com.hx.test.Test18StaticHolder240:             1             16  com.hx.test.Test18StaticHolder241:             1             16  com.hx.test.Test18StaticHolder242:             1             16  com.hx.test.Test18StaticHolder243:             1             16  com.hx.test.Test18StaticHolder244:             1             16  com.hx.test.Test18StaticHolder245:             1             16  com.hx.test.Test18StaticHolder246:             1             16  com.hx.test.Test18StaticHolder247:             1             16  com.hx.test.Test18StaticHolder248:             1             16  com.hx.test.Test18StaticHolder249:             1             16  com.hx.test.Test18StaticHolder250:             1             16  com.hx.test.Test18StaticHolder251:             1             16  com.hx.test.Test18StaticHolder252:             1             16  com.hx.test.Test18StaticHolder253:             1             16  com.hx.test.Test18StaticHolder254:             1             16  com.hx.test.Test18StaticHolder255:             1             16  com.hx.test.Test18StaticHolder256:             1             16  com.hx.test.Test18StaticHolder257:             1             16  com.hx.test.Test18StaticHolder258:             1             16  com.hx.test.Test18StaticHolder259:             1             16  com.hx.test.Test18StaticHolder260:             1             16  com.hx.test.Test18StaticHolder261:             1             16  com.hx.test.Test18StaticHolder262:             1             16  com.hx.test.Test18StaticHolder263:             1             16  com.hx.test.Test18StaticHolder264:             1             16  com.hx.test.Test18StaticHolder265:             1             16  com.hx.test.Test18StaticHolder266:             1             16  com.hx.test.Test18StaticHolder267:             1             16  com.hx.test.Test18StaticHolder268:             1             16  com.hx.test.Test18StaticHolder269:             1             16  com.hx.test.Test18StaticHolder270:             1             16  com.hx.test.Test18StaticHolder271:             1             16  com.hx.test.Test18StaticHolder272:             1             16  com.hx.test.Test18StaticHolder273:             1             16  com.hx.test.Test18StaticHolder274:             1             16  com.hx.test.Test18StaticHolder275:             1             16  com.hx.test.Test18StaticHolder276:             1             16  com.hx.test.Test18StaticHolder277:             1             16  com.hx.test.Test18StaticHolder278:             1             16  com.hx.test.Test18StaticHolder279:             1             16  com.hx.test.Test18StaticHolder$$Lambda$1/329611835280:             1             16  com.hx.test.Test18StaticHolder$$Lambda$10/1757676444281:             1             16  com.hx.test.Test18StaticHolder$$Lambda$11/1870647526282:             1             16  com.hx.test.Test18StaticHolder$$Lambda$12/2009787198283:             1             16  com.hx.test.Test18StaticHolder$$Lambda$13/466505482284:             1             16  com.hx.test.Test18StaticHolder$$Lambda$14/1615780336285:             1             16  com.hx.test.Test18StaticHolder$$Lambda$15/2094411587286:             1             16  com.hx.test.Test18StaticHolder$$Lambda$16/1216590855287:             1             16  com.hx.test.Test18StaticHolder$$Lambda$17/1122134344288:             1             16  com.hx.test.Test18StaticHolder$$Lambda$18/1413653265289:             1             16  com.hx.test.Test18StaticHolder$$Lambda$19/125622176290:             1             16  com.hx.test.Test18StaticHolder$$Lambda$2/1007251739291:             1             16  com.hx.test.Test18StaticHolder$$Lambda$20/342597804292:             1             16  com.hx.test.Test18StaticHolder$$Lambda$21/258754732293:             1             16  com.hx.test.Test18StaticHolder$$Lambda$22/1476394199294:             1             16  com.hx.test.Test18StaticHolder$$Lambda$23/348100441295:             1             16  com.hx.test.Test18StaticHolder$$Lambda$24/655381473296:             1             16  com.hx.test.Test18StaticHolder$$Lambda$25/1076496284297:             1             16  com.hx.test.Test18StaticHolder$$Lambda$26/1072601481298:             1             16  com.hx.test.Test18StaticHolder$$Lambda$27/1459672753299:             1             16  com.hx.test.Test18StaticHolder$$Lambda$28/1596000437300:             1             16  com.hx.test.Test18StaticHolder$$Lambda$29/1225439493301:             1             16  com.hx.test.Test18StaticHolder$$Lambda$3/853993923302:             1             16  com.hx.test.Test18StaticHolder$$Lambda$30/1845904670303:             1             16  com.hx.test.Test18StaticHolder$$Lambda$31/13329486304:             1             16  com.hx.test.Test18StaticHolder$$Lambda$32/517210187305:             1             16  com.hx.test.Test18StaticHolder$$Lambda$33/1776957250306:             1             16  com.hx.test.Test18StaticHolder$$Lambda$34/1273765644307:             1             16  com.hx.test.Test18StaticHolder$$Lambda$35/764577347308:             1             16  com.hx.test.Test18StaticHolder$$Lambda$36/422250493309:             1             16  com.hx.test.Test18StaticHolder$$Lambda$37/343965883310:             1             16  com.hx.test.Test18StaticHolder$$Lambda$38/2114650936311:             1             16  com.hx.test.Test18StaticHolder$$Lambda$39/540585569312:             1             16  com.hx.test.Test18StaticHolder$$Lambda$4/201556483313:             1             16  com.hx.test.Test18StaticHolder$$Lambda$40/828441346314:             1             16  com.hx.test.Test18StaticHolder$$Lambda$41/858242339315:             1             16  com.hx.test.Test18StaticHolder$$Lambda$42/1558712965316:             1             16  com.hx.test.Test18StaticHolder$$Lambda$43/1401132667317:             1             16  com.hx.test.Test18StaticHolder$$Lambda$44/1875308878318:             1             16  com.hx.test.Test18StaticHolder$$Lambda$45/36202360319:             1             16  com.hx.test.Test18StaticHolder$$Lambda$46/329645619320:             1             16  com.hx.test.Test18StaticHolder$$Lambda$47/1668627309321:             1             16  com.hx.test.Test18StaticHolder$$Lambda$5/731395981322:             1             16  com.hx.test.Test18StaticHolder$$Lambda$6/1282473384323:             1             16  com.hx.test.Test18StaticHolder$$Lambda$7/226710952324:             1             16  com.hx.test.Test18StaticHolder$$Lambda$8/1379435698325:             1             16  com.hx.test.Test18StaticHolder$$Lambda$9/1073502961326:             1             16  com.intellij.rt.debugger.agent.CaptureAgent$1327:             1             16  com.intellij.rt.debugger.agent.CaptureAgent$CaptureTransformer328:             1             16  com.intellij.rt.debugger.agent.CaptureStorage$1329:             1             16  java.io.FileDescriptor$1330:             1             16  java.lang.CharacterDataLatin1331:             1             16  java.lang.ClassValue$Identity332:             1             16  java.lang.Float333:             1             16  java.lang.ProcessEnvironment$EntryComparator334:             1             16  java.lang.ProcessEnvironment$NameComparator335:             1             16  java.lang.Runtime336:             1             16  java.lang.String$CaseInsensitiveComparator337:             1             16  java.lang.System$2338:             1             16  java.lang.Terminator$1339:             1             16  java.lang.Throwable$WrappedPrintStream340:             1             16  java.lang.invoke.MemberName$Factory341:             1             16  java.lang.invoke.MethodHandleImpl$2342:             1             16  java.lang.invoke.MethodHandleImpl$3343:             1             16  java.lang.ref.Reference$1344:             1             16  java.lang.ref.Reference$Lock345:             1             16  java.lang.reflect.ReflectAccess346:             1             16  java.net.URLClassLoader$7347:             1             16  java.nio.Bits$1348:             1             16  java.nio.charset.CoderResult$1349:             1             16  java.nio.charset.CoderResult$2350:             1             16  java.security.AllPermission351:             1             16  java.security.ProtectionDomain$2352:             1             16  java.security.ProtectionDomain$JavaSecurityAccessImpl353:             1             16  java.util.Collections$EmptyList354:             1             16  java.util.Collections$EmptySet355:             1             16  java.util.HashMap$EntrySet356:             1             16  java.util.HashMap$Values357:             1             16  java.util.Hashtable$EntrySet358:             1             16  java.util.IdentityHashMap$KeySet359:             1             16  java.util.LinkedHashMap$LinkedKeySet360:             1             16  java.util.WeakHashMap$KeySet361:             1             16  java.util.concurrent.atomic.AtomicBoolean362:             1             16  java.util.jar.JavaUtilJarAccessImpl363:             1             16  java.util.zip.ZipFile$1364:             1             16  sun.misc.ASCIICaseInsensitiveComparator365:             1             16  sun.misc.Launcher366:             1             16  sun.misc.Launcher$Factory367:             1             16  sun.misc.Perf368:             1             16  sun.misc.Unsafe369:             1             16  sun.net.www.protocol.file.Handler370:             1             16  sun.reflect.DelegatingMethodAccessorImpl371:             1             16  sun.reflect.ReflectionFactory
Total         22482      127186264

这篇关于01 记录一次 TaskManager 中 old 被全部占用的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/725107

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁

MySQ中出现幻读问题的解决过程

《MySQ中出现幻读问题的解决过程》文章解析MySQLInnoDB通过MVCC与间隙锁机制在可重复读隔离级别下解决幻读,确保事务一致性,同时指出性能影响及乐观锁等替代方案,帮助开发者优化数据库应用... 目录一、幻读的准确定义与核心特征幻读 vs 不可重复读二、mysql隔离级别深度解析各隔离级别的实现差异

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.