Add performance tuning section for high-throughput Runners#1797
Conversation
Document the JVM system properties available to tune Runner capacity when users hit "Runner did not deliver reports in the configured timeout period" errors under heavy load. Covers: - Operation concurrency (runner.operations.maxRunning) - Report delivery batching (sendRate, sendBatchSize) with a warning that changing these puts additional load on the server and the defaults are recommended - Micronaut HTTP client pool and timeouts Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds customer-facing documentation for tuning Runner performance when high concurrency/log throughput leads to report-delivery timeouts.
Changes:
- Introduces a new “Performance tuning for high-throughput Runners” section explaining the timeout symptom and what it indicates.
- Documents key JVM
-Dproperties for operation concurrency, report batching/flush behavior (with warning), and Micronaut HTTP client pool/timeouts. - Provides runnable
java -D... -jar ...examples for each tuning area.
| Example — double the default concurrency: | ||
|
|
||
| ``` | ||
| java -Drunner.operations.maxRunning=100 -Xmx8g -jar pd-runner.jar | ||
| ``` |
There was a problem hiding this comment.
The examples in this new section use pd-runner.jar, but earlier on the same page other examples use runner.jar / pdrunner.jar. This inconsistency can confuse readers who copy/paste commands. Consider standardizing the jar filename across this page, or add a short note in this new section clarifying that pd-runner.jar is the expected Runner jar name (or that it should be replaced with the actual jar filename the user downloaded).
There was a problem hiding this comment.
@copilot apply changes based on this feedback
There was a problem hiding this comment.
Standardized all jar filename references across the page to pd-runner.jar in commit 2408478. This covers the proxy section (pdrunner.jar → pd-runner.jar) and the heap size/temp dir sections (runner.jar → pd-runner.jar), so all examples on the page now match.
Agent-Logs-Url: https://github.com/rundeck/docs/sessions/f81ab751-17b4-4ece-a887-54e2cd3d4700 Co-authored-by: ltamaster <6034968+ltamaster@users.noreply.github.com>
Summary
Adds a new Performance tuning for high-throughput Runners section to
runner-config.mdthat documents the main JVM system properties available when users hit the server-side error:This error indicates the Runner is saturated (not that the operation itself hung), and until now there was no customer-facing documentation describing how to scale the Runner to handle higher concurrency or log throughput.
Properties documented
runner.operations.maxRunning(default50)runner.reporter.sendRate(default2s)runner.reporter.sendBatchSize(default1000)micronaut.http.client.pool.max-connections(default50)micronaut.http.client.pool.acquire-timeout(default10s)micronaut.http.client.read-timeout(default60s)micronaut.http.client.connect-timeout(default10s)Each property describes its purpose and when to increase/decrease it. Each subsection includes a runnable
java -D... -jar pd-runner.jarexample.Design notes
micronaut.executors.*,micronaut.netty.*, polling rates, kill switches) are deliberately omitted — they are either risky to expose or not related to the timeout class this section targets.Test plan
#configure-java-heap-sizestill resolves (used in themaxRunningcaveat)🤖 Generated with Claude Code