Job Scheduler

Also known as: task scheduler, workload scheduler.

A system that decides when queued jobs may run and which eligible worker should receive each one under capacity and policy constraints.

Synthetic dataExamples on this page use synthetic data created for illustration.

Definition

A job scheduler decides when queued jobs may run and which eligible worker should receive each one. It matches requirements against worker capabilities and capacity, then applies priorities, deadlines, fairness and concurrency rules. Execution is performed by workers; scheduling is the placement and timing decision.

In plain terms

The queue says what work is waiting. The scheduler chooses a suitable destination. A job that needs macOS should not land on Linux; a memory-heavy job should not fill a nearly exhausted node; two jobs needing the same exclusive device should not run together.

Eligibility comes before preference. First remove workers that cannot safely run the job, then rank the remaining choices. If none qualify, report the unmet requirement rather than leaving the job mysteriously waiting.

Example

Job requirementWorker AWorker BScheduler decision
macOS, 4 GB freemacOS, 8 GBLinux, 32 GBA
Linux, GPUmacOS, no GPULinux, GPUB
Exclusive scanner already in useScanner busyNo scannerWait with a reason

The largest machine is not automatically the best choice; it must first satisfy the job’s explicit requirements and current resource rules.

Common misunderstandings

  • “The scheduler runs the job.” It chooses timing and placement; a worker or executor performs the work.
  • “Round-robin is always fair.” Jobs differ in requirements, duration, priority and resource cost.
  • “Queued means schedulable.” A job can be waiting even though no current worker meets its constraints; expose that state.
  • “Machine names are capabilities.” Record capabilities and resources explicitly so placement does not depend on naming conventions.

References

  1. Kubernetes Scheduler . Kubernetes Documentation.
  2. Abhishek Verma et al.. Large-scale cluster management at Google with Borg . Proceedings of the Tenth European Conference on Computer Systems, 2015. DOI: 10.1145/2741948.2741964