Skip to content

Make slurmctld periodic check interval configurable#200

Open
dkhokhlov wants to merge 1 commit into
SchedMD:masterfrom
dkhokhlov:reduce-periodic-timeout
Open

Make slurmctld periodic check interval configurable#200
dkhokhlov wants to merge 1 commit into
SchedMD:masterfrom
dkhokhlov:reduce-periodic-timeout

Conversation

@dkhokhlov

@dkhokhlov dkhokhlov commented May 27, 2026

Copy link
Copy Markdown

Summary

Add SlurmctldParameters=periodic_check_interval=# to configure how often
slurmctld runs its periodic background check pass.

The default remains the existing PERIODIC_TIMEOUT value of 30 seconds. Sites
can lower the interval, for example to 2 seconds, to reduce delay before jobs
progress after powered-down nodes resume and register, such as when reducing
resume latency for suspended nodes.

Affects:

  • slurm-smd-slurmctld

Details

The interval controls the background block that runs job time-limit handling,
reservation checks, and node timer checks. The same configured value is also
used for related job warning/time-limit timing checks so behavior stays
consistent.

Invalid values, 0, and INFINITE are rejected and fall back to the default.

Documentation for the new parameter was added to slurm.conf(5) and the power
save documentation.

A targeted ATF integration test was added to verify that lowering
periodic_check_interval allows a job waiting in CONFIGURING to advance
promptly after the node registers.

Validation

  • git diff --check
  • python -m py_compile testsuite/python/tests/test_141_1.py
  • python -m pytest testsuite/python/tests/test_141_1.py -k periodic_check_interval --collect-only -q

Full execution of the new ATF test is expected to run in GitHub CI / isolated
test infrastructure, since Slurm ATF --auto-config manages the Slurm
environment and is not appropriate to run against a live local Slurm setup.

@dkhokhlov dkhokhlov marked this pull request as ready for review May 27, 2026 22:59
@dkhokhlov

Copy link
Copy Markdown
Author

Submitted via the official channel per CONTRIBUTING.md (SchedMD does
not accept GitHub PRs). Closing here; tracking upstream at:

https://support.schedmd.com/show_bug.cgi?id=25294

@dkhokhlov dkhokhlov closed this May 28, 2026
@wickberg

Copy link
Copy Markdown
Member

We do accept PRs now, although older versions of CONTRIBUTING.md still said we did not.

I've pushed a change to update the version on the 25.05/25.11 branches to help avoid confusion.

@wickberg wickberg reopened this May 28, 2026
Add `SlurmctldParameters=periodic_check_interval=#` to configure how often slurmctld runs its periodic background check pass while keeping the default at the existing `PERIODIC_TIMEOUT` value of 30 seconds.

Use the configured interval for the controller background time-limit processing and the related warning/time-limit checks so behavior stays consistent. Reject invalid values, 0, and INFINITE and fall back to the default.

Document the option in `slurm.conf(5)` and the power save docs, and add an ATF test covering the reduced-interval cloud node resume path.

Changelog: Add SlurmctldParameters=periodic_check_interval=# to tune the slurmctld periodic background check interval (default 30s).

Signed-off-by: Dmitri Khokhlov <dkhokhlov@gmail.com>
@dkhokhlov dkhokhlov force-pushed the reduce-periodic-timeout branch from 2834f99 to 8cd0b7e Compare May 28, 2026 07:12
@dkhokhlov

Copy link
Copy Markdown
Author

Debian downstream: bugs.debian.org/1138083

@mcmult mcmult self-requested a review June 24, 2026 20:27
@mcmult

mcmult commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Can you clarify what the effect you are trying to achieve here? This appears to hit a lot of different loop timers that aren't directly related to the issue in the summary and I want to make sure this is behaving as expected.

Thanks!

@dkhokhlov

dkhokhlov commented Jun 30, 2026

Copy link
Copy Markdown
Author

Can you clarify what the effect you are trying to achieve here? This appears to hit a lot of different loop timers that aren't directly related to the issue in the summary and I want to make sure this is behaving as expected.

Thanks!

The goal is to reduce the extra delay before jobs start after nodes in power save mode are resumed and register.

This does not change the underlying timeout values. It only changes how often slurmctld evaluates the existing PERIODIC_TIMEOUT polling block.

Today that poll is hardcoded at 30s and runs this existing group:

  • job_time_limit()
  • job_resv_check()
  • check_node_timers()

The relevant path is in job_time_limit(): despite the name, it also rechecks CONFIGURING jobs and advances them when test_job_nodes_ready() succeeds:

test_job_nodes_ready() -> job_config_fini() -> launch_job()

So after ResumeProgram brings a node back from power save mode and slurmd registers, the job can still wait until the next hardcoded 30s PERIODIC_TIMEOUT poll before launching. Making that poll interval configurable lowers that average extra wait.

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.

3 participants