Skip to main content
Version: Release 25.3

Configure the JVM DNS TTL

This guide explains how to configure the DNS Time-to-Live (TTL) settings for the Release Java Virtual Machine (JVM) in a Kubernetes environment. Proper TTL configuration is crucial for managing how long DNS resolutions are cached, which can affect system performance and network behavior.

Understanding JVM DNS Caching​

The Release Java Virtual Machine (JVM) implements DNS caching to optimize hostname resolution performance. When the JVM resolves a hostname to an IP address, it stores this resolution in a cache for a configurable period, known as the Time-to-Live (TTL).

Default Configuration​

By default, the TTL on Release images is set to 30 seconds. This setting is configured in the JVM's conf/security/security.properties file with the following parameter:

networkaddress.cache.ttl=30
TTL Values
  • Setting TTL to -1 configures permanent caching
  • Setting TTL to 0 disables caching entirely
  • Any positive value represents the cache duration in seconds

Modifying TTL Settings​

To change the default TTL value, you can modify the networkaddress.cache.ttl property through the operator CR configuration. For example, to set the TTL to 10 seconds:

kubectl patch -n digitalai digitalaireleases.xlr.digital.ai dai-xlr \
--type=merge --patch '{"jvm":{"options": {"networkaddress.cache.ttl": 10}}}'

After applying this change, the Release pods will automatically restart to apply the new TTL configuration.