[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