Visit Azul.com Support

Configuring the Profile Log Service

Table of Contents
Need help?
Schedule a consultation with an Azul performance expert.
Contact Us

When you use the Cloud Native Compiler Profile Log Service, JVMs all write profile log candidates to unique profile names on the service. CNC gathers all of the candidates for a profile name and decides which is th best candidate to serve to JVM clients requesting that profile name.

When considering what settings are set on the client versus on the service:

  • Individual JVMs decide when CNC should consider their profile log is a suitable candidate for sharing with other JVMs. They can also override server-side defaults for profile log nomination candidates and maximum profile log size.

  • CNC also controls the rules for where to store ReadyNow profile logs, when to clean up old logs, and service-wide defaults for profile log candidate nomination and maximum profile log size.

Duration Configuration

You specify the value of duration properties in the format PnDTnHnMn.nS, where n is the relevant days, hours, minutes or seconds part of the duration.

Configuring Clean Up of Old Profile Logs

Profile Log Service performs automatic cleanup of unused profile logs in order to fit collected data in the configured storage. When data size in your cache node exceeds a threshold, Profile Log Service deletes old profile logs, thus guaranteeing that a promoted profile log is available for all profile names.

You can also configure Profile Log Service to delete unused profile names completely after a given duration using the profileLogService.cleaner.keepUnrequestedProfileNamesFor property in your values-override.yaml. For example, to keep unused profiles for 5 days, use the following:

 
$ profileLogService.cleaner.keepUnrequestedProfileNamesFor=P5D

Profile Log Service triggers cleanup when you have used around 60% of the available space in your cache. If you are using a persistent volume to back up your cache node, CNC calculates the threshold for triggering clean up automatically. If you are using S3 or Azure Blob Storage, there is no reliable way for CNC to calculate the size of the blob storage. You must therefore specify the size using the profileLogService.cleaner.externalPersistentStorageSoftLimit property, which by default, is 10Gb.

Note that depending on your usage, CNC’s clean up mechanism may not be able to keep the actual size of your stored profiles below the size of your cache storage. When you reach 90% usage, a warning is printed in the log of the gateway service.

If your cache storage fills up completely, JVMs attempting to write to Profile Log Service receive an error.

Profile Log Service Defaults

CNC admins can set the following global defaults for ReadyNow profiles in values-override.yaml:

Option Description Default

profileLogService.debugInfoHistoryLength

Limit of rolling profile history entries

100

profileLogService.cache.enabled

Enabling of caching the chunk content on the gateway

true

profileLogService.cache.maxSizeBytes

The fixed size of chunk content cache on the gateway

500000000

profileLogService.completedAfter

Time required after the last profile update, after which the profile is considered completed and updates are no longer possible, duration specified in format PnDTnHnMn.nS.

PT24H

profileLogService.producers.maxConcurrentRecordings

The number of concurrent copies of a specific generation CNC will accept before it tells other JVMs trying to write the same generation of the same profile name to stop

5

profileLogService.producers.maxPromotableGeneration

Maximum number of generations CNC will accept for a profile name. Note that here is no 'unlimited' value available

3

profileLogService.producers.maxProfileSize

Limit on the input profile size, in bytes. No limit by default

0

profileLogService.cleaner.enabled

Enabling of automatic repository clean-up

true

profileLogService.cleaner.externalPersistentStorageSoftLimit

When your cache node is backed by azure-blob or s3 storage, this determines the threshold for the blob data usage, at which the Profile Log Service initiates its cleanup process.

When your cache node is backed by a persistent storage volume, this threshold is calculated automatically.

10Gi

profileLogService.cleaner.keepUnrequestedProfileNamesFor

Time limit after which the profile name will be removed if it was not requested within the given duration specified in format PnDTnHnMn.nS.

By default, no limit is defined.

0