Skip to content

atenet-router: raise actor-cluster circuit breakers - #806

Open
Chuang Wang (chuangw6) wants to merge 1 commit into
agent-substrate:mainfrom
chuangw6:router-limits
Open

atenet-router: raise actor-cluster circuit breakers#806
Chuang Wang (chuangw6) wants to merge 1 commit into
agent-substrate:mainfrom
chuangw6:router-limits

Conversation

@chuangw6

@chuangw6 Chuang Wang (chuangw6) commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator

The actor cluster configured no circuit breakers, leaving Envoy's 1,024 default — a low ceiling for the one proxy carrying every actor's ingress. Under overload it surfaces as storms of instant 503s once concurrency crosses 1,024.

  • Actor cluster: max_connections, max_pending_requests and max_requests rise to 20,000, kept under the ~28k ephemeral-port budget so overload trips a counted breaker instead of the kernel's opaque EADDRNOTAVAIL. max_retries keeps Envoy's default — nothing on this cluster retries.
  • ext_proc cluster: the --extproc-max-requests ceiling now covers max_pending_requests as well as max_requests.

Tested with go test ./cmd/atenet/internal/router/.

@google-cla

google-cla Bot commented Aug 8, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@chuangw6 Chuang Wang (chuangw6) changed the title atenet-router: raise ext_proc and actor-cluster circuit breakers atenet-router: raise actor-cluster circuit breakers Aug 8, 2026
@chuangw6
Chuang Wang (chuangw6) force-pushed the router-limits branch 5 times, most recently from 3c308a7 to d9139a5 Compare August 8, 2026 01:12

@bowei Bowei Du (bowei) left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see you added new limits and constants -- but how do we expect it to behave for people who install it on a smaller machine than you are giving space for?

Comment thread manifests/ate-install/atenet-router.yaml Outdated
Comment thread manifests/ate-install/atenet-router.yaml Outdated
Comment thread manifests/ate-install/atenet-router.yaml Outdated
Comment thread manifests/ate-install/atenet-router.yaml Outdated
@bowei

Copy link
Copy Markdown
Collaborator
  • Resolve the conflicts
  • Are we ok with setting flat 8 core in the specs for now. If users deploy on a smaller machine, is this going to be a problem?

@bowei

Copy link
Copy Markdown
Collaborator

Ok, let's remove the config that won't be needed in version 37 and we should be good with this PR

@chuangw6
Chuang Wang (chuangw6) force-pushed the router-limits branch 2 times, most recently from 2a93a40 to 363c405 Compare August 12, 2026 19:01
Comment thread cmd/atenet/internal/router/xds_test.go Outdated
t.Errorf("max_requests after SetExtProcMaxRequests(0) = %d, want default %d", got, defaultExtProcMaxRequests)
}
})

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove these test -- this is overkill

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done — removed both added tests; the change ships with no test diff.

The actor cluster configured no breakers, leaving Envoy's 1,024 default,
which caps concurrent requests through the router far below what it can
carry. Connections, pending and requests rise to 20,000, kept under the
~28k source-port budget so overload trips a counted breaker instead of the
kernel's opaque EADDRNOTAVAIL; max_retries keeps its default since nothing
here retries. The ext_proc breaker now applies its ceiling to
max_pending_requests as well as max_requests.
@bowei

Copy link
Copy Markdown
Collaborator

Get the tests to pass

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants