WM 8/6.5 memory usage question


We have recently installed our first version of WM8, and are putting together a plan for upgrading from WM6.5 at some in the near future. We use the Integration Server with trading networks at the present time

One of the things we have noticed as a difference between 6.5 and 8 is the way that the memory usage oscillated throughout the day. Currently our experience with IS 6.5 is that the used memory is often jumping around. More accurately, it seems to increase slowly over a short period of time (say 30 seconds), and then a bit of memory is freed up, perhaps by garbage collection. This pattern then repeats throughout the day, and the memory usage graph over the day is effectively a flat line

However, with Integration Server v8, we have noticed that the used memory increases throughout the day and seems to get cleared down a lot less regularly, meaning that the increase in memory is more noticeable throughout the day. In fact, it seems to increase consistently over a couple of hours before the memory is cleared down

We had a few theories, but are unsure on if they are correct

1 – There is configuration to set garbage collection to occur at certain intervals. However, we couldn’t find any settings for this
2 – Garbage collection only occurs when necessary, and the fact that we have a lot more JVM memory available to us means that garbage collection is not necessary as often as before

Does anyone have any thoughts? Also, does anyone know what the IS is doing to use up the memory? It does this even when sitting “idle” (although it is obviously doing stuff behind the scenes). Any help would be much appreciated



Well there is nothing like configuration parameter for garbage collection, its implicitely handled by JVM but if you want to do it explicitely the only way is to write some java code and call system.gc() from there , may be schedule this service. but before even going there… you need to analyse why memory utilisation is getting increased may be some of threads are getting hung and not releasing resources.

In my personel experiences with JVM 1.5 or later versions memory management is more efficient than the 1.4 (which you might be using in 6.5), as i said above GC is explicitey handled by JVM so it will occur only when free memory will go down certain threshold which is obviosly set in jvm parameters (out of wm scope) … you must have seen that IS not always provide the maximum memory you alot to your application in server.bat, it will increase till the maximum value only according to some JVM algorithm as n when application requires.

Hope it helps!

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.