[OPNFLWPLUG-830] [He Plugin] Memory leak during reconciliation Created: 09/Dec/16  Updated: 27/Sep/21  Resolved: 06/Jun/17

Status: Resolved
Project: OpenFlowPlugin
Component/s: General
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Vijay Daniel Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 7332

 Description   

Setup:
opendaylight stable boron.
JVM heap size: 8 GB
RAM : 32 GB
CPU : 24

Problem Statement:
Huge memory consumption during reconciliation. Old Gen getting filled completely which triggers multiple full GCs but still it is not getting freed.
Frequent and Long full GC pauses cripples the controller.

Scenario:
Multiple reconciliation cycles were triggered.
1) Start the controller
2) Push 10K flows for each switches[40]
3) Start monitoring the heap by using the jstat.
4) Connect the 40 switches.
5) Wait for the reconciliation to finish.
6) disconnect the switch
7) repeat from step 3.

You will observe that the full GC is not able to clear the old gen space. With every reconciliation iteration we see the old gen utilization is increasing. Eventually the utilization hits the max capacity, leading to frequent and long full GCs.



 Comments   
Comment by Vijay Daniel [ 09/Dec/16 ]

The issues is with the ingress queue in ConnectionConductorImpl not been removed from the memory after the disconnect of the switch.

The solution is to close the queue on disconnect.

Comment by Vijay Daniel [ 09/Dec/16 ]

https://git.opendaylight.org/gerrit/#/c/49172/

Code correction is provided as part of the above gerrit.
Waiting for the review to complete.

Comment by Jozef Bacigal [ 06/Jun/17 ]

Merged

Generated at Wed Feb 07 20:33:29 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.