We're using an older version of ActiveMQ (5.3.2) (see: Is activemq reliable?)
We've removed persistence because we needed more speed. Our worker can keep up with the messages, but, even though the queue typically is at 0 pending, after about 45000 messages processed (a message is typically 100 chars long), the Page file is 8GB!! It doesn't stop there though, it continues until 15 GB is reached (Our server has 16gb memory)!
Stopping the ActiveMQ process doesn't clean up this pagefile, it remains this huge indefinately.
these are the settings we use:
<policyEntry queue=">" producerFlowControl="false" memoryLimit="2gb">
</policyEntry>
and
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage limit="20 mb"/>
</memoryUsage>
<storeUsage>
<storeUsage limit="1 gb"/>
</storeUsage>
<tempUsage>
<tempUsage limit="100 mb"/>
</tempUsage>
</systemUsage>
</systemUsage>
What do we need to do to keep memory usage in 'normal' levels?
Our server: Windows 2003 (64bit). ActivemQ (5.3.2), with Java64 bit (1.6.0__22)