I'm sorry I made a mistake. My storage is kahadb. We switched from leveldb to kahadb a while ago and I forgot that. Thanks for the links. Now understand what happened!
2015-02-28 19:03 GMT+08:00 Tim Robbins <tim.robb...@outlook.com>: > 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. > >