Briefly, this error occurs when Elasticsearch compiles too many unique dynamic scripts within a short time period, exceeding the limit set by the system. This could potentially degrade the performance of your Elasticsearch cluster. To resolve this issue, you can increase the script compilation rate limit, cache and reuse scripts, or convert dynamic scripts to stored scripts. However, be cautious when increasing the limit as it may lead to high CPU usage. It’s recommended to optimize your scripts for better performance.
This guide will help you check for common problems that cause the log ” [script] Too many dynamic script compilations within; max: [ ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: .
Log Context
Log “[script] Too many dynamic script compilations within; max: [” class name is ScriptCache.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :
}); if (tokenBucketState.tokenSuccessfullyTaken == false) { scriptMetrics.onCompilationLimit(); // Otherwise reject the request throw new CircuitBreakingException("[script] Too many dynamic script compilations within; max: [" + rate + "]; please use indexed; or scripts with parameters instead; " + "this limit can be changed by the [" + contextRateSetting + "] setting"; CircuitBreaker.Durability.TRANSIENT); } }