Universal Messaging Using high heap memory

Hi everyone,

we have 4 um servers in cluster, recently we started getting issues like UM servers shutting down suddenly and most often.

so we increased the java heap space to 2048
server_common_config

Initial Java Heap Size (in MB)

wrapper.java.initmemory=2048

Maximum Java Heap Size (in MB)

wrapper.java.maxmemory=2048

even after that we observed that still we are facing server issues

when compared to higher environment, the number of files that our current environment processing is low, yet it is using high heap space and direct memory.

also, from monitoring logs, the event memory alwasys show 652, but in higher environment its 0.

can anyone help on how to make the Um servers utilize less heap space and make it stable.

Performance issues are incredibly subjective involving a multitude of variables, so you’re not going to get a resolution from the forums, unless by chance.

Typically, this is an after-effect of something that was inadvertently broken due to a change, so investigate what has changed - perhaps the latency increased, or the disk has an issue thereby slowing down UM. You can monitor the JVM heap and/or threads to diagnose via Java tools such as jvisualvm or jconsole.

In addition, there are a lot of monitoring features available on the UM; check these out and see -

  1. This is for the latest version since you didn’t indicate your version; give this a read (link)
  2. Health Monitor (link and link)
  3. Diagnostic Tools (link)
  4. Configuration Health Check (link)
  5. JMX for monitoring (link)
  6. Monitoring CLI (link) showing the details of a few that I’ve already mentioned above
  7. Contacting Support (link)

KM

Hi Kasi,

Thanks for you reply, i will definitely check the monitoring links given by you.

i observed that the JVM GC sweep is not running while checked in enterprise manager. that might be the reason.


how can i make it run?

thanks
Tahaseen

GC is an automated process and it’s the underlying Java platform activity here on UM. You can search online resources on how to force a GC manually, but I won’t recommend it.

There is a JVM section under link #1 that I provided above - give it a read.
It’s highly likely that your problem is elsewhere and not with GC.

KM

Questions:

  1. what version of wM / UM?
  2. what fixes do you have applied in that environment?
  3. Are you seeing any errors related to UM in the IS server log or UM log?
  4. What JVM parameters have you changed for UM (other than adjusting the heap size)?
  5. Make sure explicit garbage collection is disabled for the realms. This is the default but you can double check by looking in UM Enterprise Manager tool. Select the realm, then click Config. Look within Global Values and make sure DisableExplicitGC is set to true. If it is false, set it to true.
  6. Have you checked for any available fixes for the JDK shipped with wM? Software AG occasionally provides an updated JDK through Empower fixes. You can use the Software AG Update Manager application and/or Command Central to manage your fixes.

By the way, there is also a nice Garbage Collector log analyzer available here: Universal JVM GC analyzer - Java Garbage collection log analysis made easy (gceasy.io)
It is free but there are paid features too.