Thank you Nabarun,

Having started to pull out my config to send to you, I noticed the following in 
my cache.xml:

<async-event-queue 
            id="expiry-event-queue"
            parallel="false"
            enable-batch-conflation="false"
            disk-synchronous="true"
            forward-expiration-destroy="true" 
        —-> batch-time-interval=“0"
            batch-size="1"
            >...

…Which is a copy from the example here: 
https://github.com/apache/geode-examples/blob/master/async/scripts/start.gfsh
create async-event-queue --id=example-async-event-queue \
  --parallel=false \
  --enable-batch-conflation=false \
  --batch-size=1 \
  --batch-time-interval=0 \
  --listener=org.apache.geode_examples.async.ExampleAsyncEventListener


I pondered on “batch-time-interval” and set it to 1000 and it has fixed the 
issue.

I think I understand what this parameter is for and so a delay here would be 
tolerable.



I have another question, if I set parallel=“true” the gfsh start server command 
hangs and I have to kill the new server process and the gfsh launcher. 

it is not important to me now, but i would like to evaluate this at some point 
and so i’ll happily try and debug the cause.

Thanks

Rob




> On 2 Nov 2018, at 16:22, Nabarun Nag <[email protected]> wrote:
> 
> Hi Rob, 
> 
> We will look into this, meanwhile could you please elaborate on what 
> configuration is Apache Geode running, like how many servers, how many AEQs 
> regions etc, what workload is it running.
> 
> Thank you
> Nabarun Nag
> 
>> On Nov 2, 2018, at 8:37 AM, Rob Shepherd <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Hi,
>> 
>> I’m using Geode (1.7.0)  locally (OSX) and on a server.  (Linux Arm64)
>> 
>> On both I’m seeing maxed out CPUs.
>> 
>> I’ve profiled it locally on a dormant server instance (no application 
>> activity) and the Async Queue routines are the highest contributor to CPU 
>> activity by a long stretch. 
>> 
>> <PastedGraphic-1.png>
>> 
>> Back Traces - Method Total Time [%]  Total Time [µs] Total Time (CPU)        
>> Samples
>> org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderQueue.getHeadKey()
>> 100.00%      2829377292      2829377292      8639
>> .org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderQueue.getCurrentKey()
>> 0.00%        0       0       8639
>> ..org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderQueue.peekAhead()
>> 0.00%        0       0       8263
>> ...org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderQueue.peek()
>> 1.21%        9906300 9906300 8180
>> ....org.apache.geode.internal.cache.wan.AbstractGatewaySenderEventProcessor.processQueue()
>> 100.00%      1144915695      1144915695      5
>> .....org.apache.geode.internal.cache.wan.serial.SerialGatewaySenderEventProcessor.run()
>> 0.00%        0       0       5
>> 
>> 
>> How can I determine if this is a problem with my setup or if it is a bug?
>> 
>> A supposition:  I notice that there are multiple instances of a thread named 
>> after my Async Event queue ID
>> 
>> Event Processor for GatewaySender_AsyncEventQueue_expiry-event-queue.1
>> Event Processor for GatewaySender_AsyncEventQueue_expiry-event-queue.2
>> Event Processor for GatewaySender_AsyncEventQueue_expiry-event-queue.3
>> Event Processor for GatewaySender_AsyncEventQueue_expiry-event-queue.4
>> 
>> Are there supposed to be 4?  are they interfering with each other 
>> (wait/notify) on an empty queue? 
>> 
>> Thanks for any insight
>> 
>> Rob
> 

Reply via email to