Skip to content

Throttle workers during worker pool message ingestion#347

Draft
jtechapps wants to merge 1 commit into
llm-d:mainfrom
jtechapps:workerthrottling
Draft

Throttle workers during worker pool message ingestion#347
jtechapps wants to merge 1 commit into
llm-d:mainfrom
jtechapps:workerthrottling

Conversation

@jtechapps

Copy link
Copy Markdown
Collaborator

What does this PR do?

This PR throttles request message ingestion into a worker pool from the merged request channel by sleeping workers based on the admission gate Budget().

  • added worker ids for worker pools.
  • use pool gate Budget to calculate the number of active workers before pulling a request from the request channel for a worker pool
  • throttled high-ID workers (workerID > activeLimit) sleep in the polling loop without popping messages from memory channels.
  • set async_dispatch_budget{pool_name=...} metric for worker pool gate saturation.
  • at least 1 active worker when budget is 0 so that tier priority gate can drop/redeliver any non-reserved interactive or batch messages.

Why is this change needed?

Fixes: #304
Fixes: #141

How was this tested?

  • Unit tests added/updated
  • Integration/e2e tests added/updated
  • Manual testing performed

Checklist

  • Commits are signed off (git commit -s) per DCO
  • Code follows project contributing guidelines
  • Tests pass locally (make test)
  • Linters pass (make lint)
  • Documentation updated (if applicable)

Related Issues

Release note

NONE

- added worker ids for worker pools.
- use pool gate Budget to calculate the number of active workers before
  pulling a request from the request channel for a worker pool
- throttled high-ID workers (workerID > activeLimit) sleep in the polling
  loop without popping messages from memory channels.
- set async_dispatch_budget{pool_name=...} metric for worker pool gate
  saturation.
- at least 1 active worker when budget is 0 so that tier priority gate
  can drop/redeliver any non-reserved interactive or batch messages.

Signed-off-by: Jacob Murry <jacobmurry@google.com>
@jtechapps

Copy link
Copy Markdown
Collaborator Author

I will add a release note. I am also testing this now using queue clearing benchmark to ensure throughput is maintained.

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.

[Feature]: Throttle Worker Pool Workers by Gate Budget [Feature]: DispatchGates should be assigned to inference targets

1 participant