In fact, what I did on a project with drools, I limit the number of
threads running drools.
You can do this by using a java semaphore set up to 3 so that the
fourth thread must wait for one to release its semaphore.
In your case, limit the number of drools thread to 3, so the CPU will
stay at 40%.
The limit of this is that people may wait for drools as you just decided
to only execute 3 drools runs a once.
Regards
Nicolas Héron
Le mercredi 25 mars 2009 à 04:16 -0700, techy a écrit :
Thanks for your valuable input.
I did further testing in TEST solaris machine where other apps too are
running.
1.In the consumer, I launched 5-10 threads of parallel execution with drools
stateless session. It did performed well with more cpu usage. it maintained
avg cpu usage of 65-70%. occasional spikes went to 85-90%.
while I was doing this, Other apps contacted me about this and showed their
concern too.
So this brings up another question. Will drools high cpu usage degrade
other app performance when they are running in same machine & same time?
Thanks again!
nheron wrote:
>
> Hello,
> Yes, when running drools, the cpu usages goes high.
> It is one of the main caracteristic with rule engine : the more cpu you
> have the quickler it is !!
> It is normal because all the rete graph & Co are in ram and drools work
> on it.
> So there is not wait for database, IO and co so CPU goes very high very
> quicly but is is normal !
> All my customers have this surprise : a 4 CPU machine instead one one
> makes it able to have 4 concurrent drools sessions to work in parallele
> with the same performance as one session on one CPU !
> Regards
> Nicolas Heron
>
> Regards
> Nicolas
> Le mercredi 25 mars 2009 à 10:05 +0100, Wolfgang Laun a écrit :
>
>> The figures you gave just indicate that you have a good balance
>> between I/O
>> and CPU load. The increase between "no rules" and "~60
rules" is to be
>> expected
>> as all the work is being done during fact insertion. Of course, adding
>> more and
>> more rules will, eventually, push the CPU load factor to the natural
>> upper limit.
>>
>> If the overall throughput is good, why do you worry?
>>
>> -W
>>
>>
>>
>> On Tue, Mar 24, 2009 at 11:20 PM, techy <techluver007(a)gmail.com>
>> wrote:
>>
>>
>> Hello
>> My app is functioning consumer/producer model.
>> 1.Producer reads the data from DB and inserts to blocking
>> queue
>> 2.Consumer reads the data from queue and execute the rules
>> using drools
>> stateless session.
>> Both producer and consumer run asynchronously.
>>
>> in my testing I found the following
>>
>> 1. for 1000 facts at a time and no rules in drl, cpu usage is
>> maintained at
>> 25-30% in my PC(Intel core 2 CPU,2.13 GH,2G RAM) - with no
>> rules in drl, Is
>> this cpu usage acceptable?
>> 2. for 1000 facts at a time and ~60 rules in drl, cpu usage is
>> maintained at
>> 50-60% on the same PC.
>> 3. If I have 1 sec wait between each execution of rules in
>> consumer, then
>> cpu usage is maintained < 5%
>>
>> high CPU usage is being big concern to me. Is this expected
>> while using
>> drools? Do others see same cpu usage too? Please share your
>> thoughts.
>> appreciate your input.
>>
>> Thanks
>>
>> --
>> View this message in context:
>>
http://www.nabble.com/high-cpu-usage-tp22691131p22691131.html
>> Sent from the drools - user mailing list archive at
>>
Nabble.com.
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>