2

I have a setup of Apache Ignite server and having SpringBoot application as client in a Kubernetes cluster.

During performance test, I start to notice that the below log showing up frequently in SpringBoot application:

org.apache.ignite.internal.IgniteKernal: Possible too long JVM pause: 714 milliseconds

According to this post, this is due to "JVM is experiencing long garbage collection pauses", but Infrastructure team has confirmed to me that we have included +UseG1GC and +DisableExplicitGC in the Server JVM option and this line of log only show in SpringBoot application.

Please help on this following questions:

  1. Is the GC happening in the Client(SpringBoot application) or Server node?
  2. What will be that impact of long GC pause?
  3. What should I do to prevent the impact?
  4. Do I have to configure the JVM option in SpringBoot application as well?
ho wing kent
  • 63
  • 1
  • 7
  • First you need to confirm that the issue is caused by the garbage collector. Enable GC log and see if the GC pauses are really that big: https://apacheignite.readme.io/docs/jvm-and-system-tuning#section-detailed-garbage-collection-stats You can use https://gceasy.io/ website to visualize the logs. – Denis Oct 15 '19 at 09:13

1 Answers1

2

Is the GC happening in the Client(SpringBoot application) or Server node?

GC error will be logged to the log of the node which suffers problems.

What will be that impact of long GC pause?

Such pauses decreases overall performance. Also if pause will be longer than failureDetectionTimeout node will be disconnected from cluster.

What should I do to prevent the impact?

General advises are collected here - https://apacheignite.readme.io/docs/jvm-and-system-tuning. Also you can enable GC logs to have full picture of what happens.

Do I have to configure the JVM option in SpringBoot application as well?

Looks like that you should, because you have problems with client's node.

Evgeniy
  • 121
  • 1