[ https://issues.apache.org/jira/browse/RATIS-845?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
runzhiwang updated RATIS-845: ----------------------------- Description: *What's the problem ? * As the image shows, there are 1885 instances of RaftServerImpl, most of them are Closed. You can find from the image 1513 RaftServerImpl were held by ManagermentFactory->jxmMBeanServer->HashMap, 372 RaftServerImpl were held by Datanode ReportManager Thread -> prometheus -> HashMap. If RaftServerImpl can not GC, there are a lot of related resource can not be GC, such as the [DirectByteBuffer|https://github.com/apache/incubator-ratis/blob/master/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogWorker.java#L150] in SegmentRaftLogWorker, which result 1GB memory leak out of heap. h3. *{color:#DE350B}1. 1885 instances of RaftServerImpl {color}* !screenshot-4.png! h3. *{color:#DE350B}2. 1513 RaftServerImpl were held by ManagermentFactory->jxmMBeanServer->HashMap, 372 RaftServerImpl were held by Datanode ReportManager Thread -> prometheus -> HashMap{color}* !screenshot-5.png! h3. *{color:#DE350B}3. 1513 RaftServerImpl were held by ManagermentFactory->jxmMBeanServer->HashMap{color}* !screenshot-6.png! h3. *{color:#DE350B}4. 372 RaftServerImpl were held by Datanode ReportManager Thread -> prometheus -> HashMap{color}* !screenshot-7.png! h3. *{color:#DE350B}5. 2038 DirectByteBuffer, and 1885 held by RaftServerImpl.{color}* !screenshot-8.png! !screenshot-9.png! h3. *{color:#DE350B}6. 1033 DirectByteBuffer were held by ManagermentFactory, 802 DirectByteBuffer were held by Datanode ReportManager Thread, total 1885.{color}* !screenshot-10.png! was: *What's the problem ? * As the image shows, there are 1885 instances of RaftServerImpl, most of them are Closed. You can find from the image 1513 RaftServerImpl were held by ManagermentFactory->jxmMBeanServer->HashMap, 372 RaftServerImpl were held by Datanode ReportManager Thread -> prometheus -> HashMap. If RaftServerImpl can not GC, there are a lot of related resource can not be GC, such as the [DirectByteBuffer|https://github.com/apache/incubator-ratis/blob/master/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogWorker.java#L150] in SegmentRaftLogWorker, which result 1GB memory leak out of heap. 1. 1885 instances of RaftServerImpl !screenshot-4.png! 2. 1513 RaftServerImpl were held by ManagermentFactory->jxmMBeanServer->HashMap, 372 RaftServerImpl were held by Datanode ReportManager Thread -> prometheus -> HashMap !screenshot-5.png! 3. 1513 RaftServerImpl were held by ManagermentFactory->jxmMBeanServer->HashMap !screenshot-6.png! 4. 372 RaftServerImpl were held by Datanode ReportManager Thread -> prometheus -> HashMap !screenshot-7.png! 5. 2038 DirectByteBuffer, and 1885 held by RaftServerImpl. !screenshot-8.png! !screenshot-9.png! h3. *{color:#DE350B}6. 1033 DirectByteBuffer were held by ManagermentFactory, 802 DirectByteBuffer were held by Datanode ReportManager Thread, total 1885.{color}* !screenshot-10.png! > Memory leak of RaftServerImpl > ----------------------------- > > Key: RATIS-845 > URL: https://issues.apache.org/jira/browse/RATIS-845 > Project: Ratis > Issue Type: Bug > Reporter: runzhiwang > Assignee: runzhiwang > Priority: Major > Attachments: screenshot-10.png, screenshot-2.png, screenshot-3.png, > screenshot-4.png, screenshot-5.png, screenshot-6.png, screenshot-7.png, > screenshot-8.png, screenshot-9.png > > > *What's the problem ? * > As the image shows, there are 1885 instances of RaftServerImpl, most of them > are Closed. You can find from the image > 1513 RaftServerImpl were held by > ManagermentFactory->jxmMBeanServer->HashMap, 372 RaftServerImpl were held by > Datanode ReportManager Thread -> prometheus -> HashMap. If RaftServerImpl can > not GC, there are a lot of related resource can not be GC, such as the > [DirectByteBuffer|https://github.com/apache/incubator-ratis/blob/master/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogWorker.java#L150] > in SegmentRaftLogWorker, which result 1GB memory leak out of heap. > h3. *{color:#DE350B}1. 1885 instances of RaftServerImpl {color}* > !screenshot-4.png! > h3. *{color:#DE350B}2. 1513 RaftServerImpl were held by > ManagermentFactory->jxmMBeanServer->HashMap, 372 RaftServerImpl were held by > Datanode ReportManager Thread -> prometheus -> HashMap{color}* > !screenshot-5.png! > h3. *{color:#DE350B}3. 1513 RaftServerImpl were held by > ManagermentFactory->jxmMBeanServer->HashMap{color}* > !screenshot-6.png! > h3. *{color:#DE350B}4. 372 RaftServerImpl were held by Datanode ReportManager > Thread -> prometheus -> HashMap{color}* > !screenshot-7.png! > h3. *{color:#DE350B}5. 2038 DirectByteBuffer, and 1885 held by > RaftServerImpl.{color}* > !screenshot-8.png! > !screenshot-9.png! > h3. *{color:#DE350B}6. 1033 DirectByteBuffer were held by ManagermentFactory, > 802 DirectByteBuffer were held by Datanode ReportManager Thread, total > 1885.{color}* > !screenshot-10.png! -- This message was sent by Atlassian Jira (v8.3.4#803005)