Using JBoss3.2.1 on Solaris with a max memory limit of 512Mb specified in the run.conf.
The app is tiny, using JMS with 1 MD Bean and 1 stateless session Bean. I attempt to limit the amount of memory the JMS queue can use via the jbossmq-service.xml file using a flat file PM.
The application when idle typically takes 240Mb RAM. When specifiying a HighMemoryMark and MaxMemoryMark are these values absolute ie the size of the application, or do they represent only queue size?
I've tried load tests for both scenarios with varying results.
Assuming the memory sizes are absolute, with the HMM set to 270 and the MMM to 300 queue data was persisted to flat file but the memory size of the app kept growing, well beyond the 300Mb limit (ie 500Mb+). It was also noticeable that queue data was persisted before the HMM was reached.
Assuming the memory sizes are are for the queues, with the HMM set 30 and the MMM set to 60 queue data was persisted to flat file but the file size was smaller than the previous scenario. Again it was noticable that queue data was persisted before the HMM was reached. The app size however never rose above 250Mb!
Could someone please tell me how this feature works, what I've done wrong/mis-configured, or what I've not understood?
Finally, is an idle state size of 240Mb RAM for such a small app on the high side?
I explain this once a month.
How are you measuring the size?
The high/max refers to the jvm heap. The virtual machine
will use other memory that is not available to java objects.