devnet-2: add besu RPC connection limit and timeout#32
Open
Conversation
Limit `--rpc-http-max-active-connections` to 20 (default 80) and increase `--Xhttp-timeout-seconds` to 600 (default 30) on all besu nodes. tracoor floods 250+ concurrent `debug_traceBlockByHash` requests with full memory/storage tracing enabled. Even with the streaming fix (PR hyperledger/besu#9844), the default 80-connection limit allows enough concurrent traces to exhaust JVM heap. Lowering to 20 prevents OOM while still serving normal RPC traffic. The 600s timeout prevents heavy block traces from being killed mid-flight. Already deployed manually to both live besu nodes — stable with zero OOM under continuous tracoor load. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
--rpc-http-max-active-connections=20to prevent OOM from concurrentdebug_traceBlockByHashfloods--Xhttp-timeout-seconds=600to prevent heavy block traces from being killed mid-flightContext
tracoor sends concurrent
debug_traceBlockByHashrequests with full memory/storage tracing enabled (disableMemory: false). Each response is 350-600 MB of JSON. With the default 80-connection limit, enough concurrent traces run simultaneously to exhaust JVM heap, causingOutOfMemoryErroron both besu nodes.Lowering to 20 connections rejects excess requests at the HTTP layer instead of accepting them all and OOMing. Normal RPC traffic (engine API,
eth_*calls) is unaffected — engine API runs on port 8551, not the HTTP RPC port.Already deployed manually to both live besu nodes — stable with zero OOM under continuous tracoor load.
Related: hyperledger/besu#9844 (streaming fix for
debug_traceBlock)🤖 Generated with Claude Code