Hi, Two suggestions for you:
1. Try decreasing the logSize parameter for LevelDB. You’ve have a greater number of smaller log files, and a greater chance of each log file being garbage-collected. 2. With KahaDB, it’s possible to configure multiple KahaDB stores, and to put your dead-letter type messages into a different store than everything else to reduce overhead: http://blog.garytully.com/2011/11/activemq-multiple-kahadb-instances.html <http://blog.garytully.com/2011/11/activemq-multiple-kahadb-instances.html> Unfortunately it doesn’t appear that this applies to LevelDB yet! Regards, Tim > On 28 Feb 2015, at 7:27 pm, Rural Hunter <ruralhun...@gmail.com> wrote: > > Hi, > > Activemq version 5.10.2, storage: leveldb. > > I have a queue which serves similiar function as dead letter queue. My > application process messages from another queue and if the processing > fails, it put the message into this queue. The messages are persistent and > average several KBs in size. My application processes many messages but the > failed message count is very small, less than 100 a day. I noticed after > the application running for several days, my activemq storage becomes > almost full. I configured the storage to 30G. I checked the normal queues > and topics and there is no queue with large count of message. Most of them > are empty and some have only several messages. Only the failure message > queue I metioned above has a few hundred messages(about 500) which are > accumulated in several days. > > I have no idea what takes so much storage. I checked the storage files and > found there are many db-xxxx.log with timestamp almost through the several > days. They are not consequent though. Some of the db-xxx.log files are not > there. So the file list is like this: > db-1000.log > db-1001.log > db-1003.log > db-1004.log > db-1005.log > db-1008.log > ... > I suspect the failed messages are in those db-xxx.log files so I just tried > to clear the failed message queue. Right after that I found those old > db-xxx.log disappeared and the storage usage went back to 2%. So it seems > clear that the about 500 failed messages took around 30G storage. But how > can it be? Those messages are very small in size and the total size of the > messsage should be no more than a few MBs.