Skip to content

opt(admin): SO_REUSEPORT per-worker listeners for multi-worker startup - #1267

Merged
zhongwen666 merged 2 commits into
alibaba:masterfrom
zhongwen666:feat/opt-lb-0717
Jul 21, 2026
Merged

opt(admin): SO_REUSEPORT per-worker listeners for multi-worker startup#1267
zhongwen666 merged 2 commits into
alibaba:masterfrom
zhongwen666:feat/opt-lb-0717

Conversation

@zhongwen666

Copy link
Copy Markdown
Collaborator

closes #1266

Summary

Give each Uvicorn worker its own SO_REUSEPORT listener when the admin service runs with multiple workers, so the kernel load-balances connections across workers instead of sharing one parent-bound socket.

Key changes

  • Add _create_reuse_port_socket / _ReusePortServer / _run_reuse_port_workers in rock/admin/main.py: each worker binds its own listener into a SO_REUSEPORT group after fork.
  • Route main() to the new path when workers > 1; keep uvicorn.run for single-worker startup.
  • Parent preflights the bind and fails fast on unsupported setups (non-Linux, UDS/fd listener, or port 0) with clear logging.

@xieyang0827
xieyang0827 self-requested a review July 20, 2026 11:31
@zhongwen666
zhongwen666 merged commit 8ebe6cb into alibaba:master Jul 21, 2026
7 checks passed
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.

admin: use SO_REUSEPORT per-worker listeners for multi-worker startup

2 participants