Most discs can do about 200 syncs per sec. That would be a hardware limit, not specific to HornetQ.
Disc synching and persistent performance has been discussed numerous times on other threads. It's worth a trawl.
I got those results for NON-persistent messages. Does that mean HornetQ syncs to disc for every single message (even non-persistent ones) once it starts paging?
I also ran ActiveMQ on the same hardware and I don't get the same behavior at all, although the initial publish rate is less than HornetQ, it does stays constant to about 1,200 messages per second, even when I have several gigabytes of messages stored in the queue.
HornetQ starts with a very high throughbut 17,000 msg/s and progressively (over several minutes) goes down to 200msg/s (and even less).
We also tested other Messaging systems (non-Java) and HornetQ is really the only one that had this degrading behavior with deepening queues. I had the impression it had to do with the way HornetQ handles large queues but I might be wrong.
It shouldn't be synching for np messages.
It's hard to know what's going on without seeing some kind of test program and config.