activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael André Pearce <>
Subject Re: [DISCUSS] Artemis IOPS Limiter strategy
Date Fri, 12 May 2017 16:36:26 GMT
Do you have a before and after high load end 2 end test? Where disk io is maxed out.

Reason I ask is taking 2.0.0 (amq ga) we have a much more steady latency under load.

Where as 2.1.0 we see very periodic spikes. (We saw this prior to our autoboxing change btw)

Sent from my iPhone

> On 12 May 2017, at 15:48, nigro_franz <> wrote:
> I was thinking of a similar solution but I've discovered that couldn't work
> (in the old or the new TimedBuffer too), because of the
> TimedBuffer::checkSize method that could force a flush if the batch buffer
> if not big enough to receive new data, going IOPS.
> Sadly TimedBuffer::checkSize is outside any timeout, but depends on the
> writers.
> That's why I've implemented the "compensation" right after any flush, in
> order to work with forced flushes too:
> Doing it on TimedBuffer::flush all the flushes on disk will be compensated
> (half of the story: ASYNCIO is async so depends on libAIO partially!)
> Regarding the IOPS computation I've built this, as you've suggested:
> The performance seems pretty good, it compensates well but it is faster than
> the original version, limiting IOPS too!
> Thanks,
> Franz
> --
> View this message in context:
> Sent from the ActiveMQ - Dev mailing list archive at

View raw message