<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:21:36 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[NETVIRT-454] Heap Memory blows up when defining large number of networks/subnets</title>
                <link>https://jira.opendaylight.org/browse/NETVIRT-454</link>
                <project id="10144" key="NETVIRT">netvirt</project>
                    <description>&lt;p&gt;ODL Version : distribution-karaf-0.5.2-Boron-SR2&lt;/p&gt;

&lt;p&gt;Openstack Version : mitaka&lt;/p&gt;

&lt;p&gt;Setup Details : 1 Control Node + 1 ODL node&lt;/p&gt;

&lt;p&gt;ODL  node: &lt;br/&gt;
Configuration: &lt;br/&gt;
Harddisk-  20 GB&lt;br/&gt;
Core    -  4 CPU &lt;br/&gt;
RAM     -  8 GB Ram&lt;/p&gt;

&lt;p&gt;Control Node and Compute Node:&lt;br/&gt;
Configuration: &lt;br/&gt;
Harddisk-  30 GB&lt;br/&gt;
Core    -  4 CPU &lt;br/&gt;
RAM     -  15 GB Ram&lt;/p&gt;

&lt;p&gt;Steps to reproduce the issue:&lt;/p&gt;

&lt;p&gt;1) Start Openstack and ODL, use 2G for heap memory&lt;br/&gt;
2) Run script to continuously define large number of networks/subnets:&lt;/p&gt;

&lt;p&gt;for j in &lt;/p&gt;
{1..20}
&lt;p&gt;do &lt;br/&gt;
  for i in &lt;/p&gt;
{1..100}
&lt;p&gt; &lt;br/&gt;
  do &lt;br/&gt;
    neutron net-create vx-net$j-$i&lt;br/&gt;
neutron subnet-create vx-net$j-$i 10.$j.$i.0/24 -&lt;del&gt;name vx-subnet$j&lt;/del&gt;$i --enable_dhcp --allocation-pool start=10.$j.$i.5,end=10.$j.$i.254&lt;br/&gt;
sleep 5&lt;br/&gt;
  done&lt;br/&gt;
  sleep 60&lt;br/&gt;
done&lt;/p&gt;

&lt;p&gt;3) Monitor the heap memory usage using jmap or jconsole&lt;/p&gt;

&lt;p&gt;4) Note if the flows are installed properly for the port creations. &lt;/p&gt;

&lt;p&gt;5) Back to 1 - 3 with different heap memory size for ODL&lt;/p&gt;

&lt;p&gt;The heap memory for each run (step 3) shows that the heap memory are quickly filled up as the number of network/subnet getting larger. Eventually heap memory runs out and OOM might occurs. At that points ODL stops functioning due to excessive GC, drops connections to OVS (or vice versa) and no more flows are installed for new port creations.&lt;/p&gt;

&lt;p&gt;The following shows test results with ODL heap memory and the maximum number of networks/subnets that can be created before the ODL server runs out of memory:&lt;br/&gt;
o	2 G : 600  networks&lt;br/&gt;
o	4 G : 1000 networks&lt;br/&gt;
o	8 G:  1600 networks&lt;br/&gt;
o	16 G: 2000 networks&lt;/p&gt;

&lt;p&gt;The heap dumps indicates that most of the heap memory usage are from this local cache:&lt;/p&gt;

&lt;p&gt;ProviderNetworkManagerImpl::nodeToProviderMaping&lt;/p&gt;</description>
                <environment>&lt;p&gt;Operating System: All&lt;br/&gt;
Platform: All&lt;/p&gt;</environment>
        <key id="20375">NETVIRT-454</key>
            <summary>Heap Memory blows up when defining large number of networks/subnets</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                                <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="vinh.nguyen@hcl.com">Vinh Nguyen</reporter>
                        <labels>
                    </labels>
                <created>Wed, 1 Feb 2017 00:48:52 +0000</created>
                <updated>Fri, 9 Mar 2018 18:21:32 +0000</updated>
                            <resolved>Tue, 4 Jul 2017 22:00:51 +0000</resolved>
                                    <version>Boron</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>0</watches>
                                                                                                                <comments>
                            <comment id="37179" author="vinh.nguyen@hcl.com" created="Tue, 4 Jul 2017 22:00:51 +0000"  >&lt;p&gt;Fixed:&lt;/p&gt;

&lt;p&gt;Boron:&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/51278/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/51278/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Master:&lt;br/&gt;
&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/51356/3&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/51356/3&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10208" key="com.atlassian.jira.plugin.system.customfieldtypes:textfield">
                        <customfieldname>External issue ID</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>7717</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10201" key="com.atlassian.jira.plugin.system.customfieldtypes:url">
                        <customfieldname>External issue URL</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[https://bugs.opendaylight.org/show_bug.cgi?id=7717]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i01rwf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>