[rules-users] Memory issues

Wolfgang Laun wolfgang.laun at gmail.com
Wed Jul 13 13:27:07 EDT 2011


This is strange - do you mean that those 18 KnowledgeAgents stored in that
Map produce 18 different StatefulKnowledgeSessions?

What does the Map<X,Y> map? X? Y?

-W

2011/7/13 Jeffrey Schneller <jeffrey.schneller at envisa.com>

> I am currently running version 5.1.0M2.  I have 18 different binary
> rulesets [packages] that are stored on the local filesystem.  The rulesets
> range in size from 4K to 131Mb. ****
>
> ** **
>
> When my application starts I load each ruleset into a knowledgeAgent and
> store the knowledgeAgent into a hashmap which is stored in memory.   They
> are loaded using the following xml:****
>
> ** **
>
> <?xml version=\"1.0\" encoding=\"UTF-8\"?>****
>
> <change-set xmlns='http://drools.org/drools-5.0/change-set' xmlns:xs='
> http://www.w3.org/2001/XMLSchema-instance' xs:schemaLocation='
> http://drools.org/drools-5.0/change-set.xsd'>****
>
> <add>****
>
> <resource source='file://PATH_TO_BINARY' type='PKG' />****
>
> </add>****
>
> </change-set>****
>
> ** **
>
> The knowledgeAgentConfiguration is setup as:****
>
> drools.agent.scanDirectories = false****
>
> drools.agent.newInstance = false****
>
> drools.agent.scanResources = false****
>
> drools.agent.monitorChangeEvents = false****
>
> ** **
>
> After the all the agents are loaded and stored in the hashmap the total
> memory used in the app is 6.2GB.  ****
>
> ** **
>
> Once the application is running, if a business user needs to update a set
> of rules there is a process in place to refresh all the knowledgeAgents with
> new rulesets.  In a new thread. the code clears the hashmap, sets the
> hashmap to null, calls for garbage collection to occur, and it then
> constructs a new hashmap and loads all the rules as it does at application
> startup. ****
>
> ** **
>
> The knowledge agent is logging the following when the ruleset is loaded:**
> **
>
> KnowledgeAgent applying ChangeSet****
>
> KnowledgeAgent performing an incremental build of the ChangeSet****
>
> KnowledgeAgent incremental build of KnowledgeBase finished and in use****
>
> ** **
>
> ** **
>
> It takes a large amount of time to do this process [double to triple the
> time of application startup]. After this occurs the memory used by the app
> increases [to nearly double the original size 12.2GB] and the CPU is maxed
> out.  After some time the CPU usage drops and the app is usable again but
> the memory never decreases.  If a business user refreshes the rules again,
> the memory increases again and the CPU is maxed out and the app becomes
> unresponsive because the memory is completely maxed out.****
>
> ** **
>
> There is obviously a memory leak somewhere and a large one at that.  Is
> this the proper way to be caching KnowledgeAgents into memory so the
> rulessets don’t need to be re-loaded everytime a knowledgeAgent is run?  Is
> my problem the use of the hashmap?  Do I need to remove the original
> knowledgeAgents that were in the hashmap?****
>
> ** **
>
> ** **
>
> Thanks for any help.****
>
> ** **
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20110713/c1ff38cc/attachment.html 


More information about the rules-users mailing list