Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expose job controller's workqueue rate limiting configs #674

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

roteme-runai
Copy link

Issue:

The mpi-operator does not handle a large number of MPI jobs effectively. Specifically, when creating a significant number of jobs (e.g., 100), the operator experiences delays in job management, leading to the following issues:

  • Excessive time taken to create all the pods required for the jobs.
  • Significant delay between a job's completion and the corresponding status update.
  • Delayed cleanup of pods (per CleanPodPolicy) due to the lag in status updates.

Root Cause:

The controller uses a workqueue with a default rate limiter configuration that is not adjustable via operator options. This is in contrast to other load-related configurations (e.g., threadiness, qps, etc.), which are user-configurable. The low default rate-limiting settings result in insufficient parallel processing, thereby delaying job handling.

Proposed Solution:

To address this, I propose exposing the controller's rate-limiting settings as user-configurable options. This change would allow users to adjust the rate limiter based on their specific usage requirements, expected scale, and system capabilities.
The solution has been tested and verified in a production environment and has demonstrated improved handling of bigger-scale MPI jobs.

Backporting Request:

If this fix is approved, I kindly request its inclusion in a new release, ideally in versions from v0.6 onward.

Thank you for your time!

@google-oss-prow google-oss-prow bot requested review from carmark and zw0610 January 1, 2025 08:30
Signed-off-by: Rotem Elad <[email protected]>
Copy link

@mlsorensen mlsorensen left a comment

Choose a reason for hiding this comment

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

LGTM. Confirmed the defaults for the new flags match the previous default limit and burst, shouldn't change behavior.

@mchmarny
Copy link

mchmarny commented Jan 6, 2025

@tenzen-y @jlewi @rongou can you help review this?

@jlewi
Copy link
Contributor

jlewi commented Jan 6, 2025

I'm not involved anymore so I'm probably not the right person to be reviewing this.

@rongou
Copy link
Member

rongou commented Jan 7, 2025

/lgtm
/approve

@terrytangyuan @alculquicondor

Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: mlsorensen, rongou

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@alculquicondor
Copy link
Collaborator

/lgtm

Signed-off-by: Rotem Elad <[email protected]>
Copy link

New changes are detected. LGTM label has been removed.

@roteme-runai
Copy link
Author

roteme-runai commented Jan 8, 2025

@rongou, @alculquicondor re-generated since verify-generate failed.
There are also failing e2e tests, but they are failing for other, older PRs too. I'm also unable to build the intel images locally to debug.
How do we proceed?

@alculquicondor
Copy link
Collaborator

@tenzen-y has been trying to fix that failure without success.

If you have any free cycles, we would appreciate help on that front. #671

Copy link
Member

@tenzen-y tenzen-y left a comment

Choose a reason for hiding this comment

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

Thank you for this contribution.
Could you rebase on the master branch to take the CI issue fix patch?

…o roteme-runai/mpi-controller-rate-limits
@google-oss-prow google-oss-prow bot added size/M and removed size/L labels Jan 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants