Repository navigation
v0.14.0
The queue file stays the same from now on, so upgrades no longer split the machine into two queues; status --json says when each job entered its state; check --scenario replays a captured queue by the admission rule; report counts runs that used more cores than they got.
Changed
- One queue file, for good. The queue stays
queue-v4.db. The database now records its layout and the admission protocol its writers keep, and every write of 0.14 and later checks both first: a loadmaster that does not know what a later one moved the queue to stops with an error instead of starting work, never with a new file of its own. Versions that keep the same protocol share the queue and count each other's jobs: 0.12, 0.13 and 0.14 do, so agents can move to 0.14 one at a time. A later change of protocol will close the queue to new jobs and switch only once it is empty, which stops 0.12 and 0.13 too. Only the files of 0.11 and before (queue-v3.dband earlier) stay separate;statusandrunnow list their running, waiting and parked jobs, and a file that cannot be read as one that may hold jobs. - When a job entered its state. The first 0.14 to open the queue brings its layout up to date in place, while 0.12 and 0.13 go on using it: each job records when it got in line or resumed its place, parked, started, or was handed over to its task's process group, kept by the database so that 0.12 and 0.13 keep it too.
status's FOR counts from it; where that time was not seen (a job left orphaned by a loadmaster that died, one waiting from before), it shows-. report: the new OVER column counts the passed runs that kept more than 1.2 times the cores they got busy, each against its own grant: a task that does not size itself byLOADMASTER_WEIGHTshows up when it got fewer cores while CPU was busy outside the queue, even within its weight.--args TEXTkeeps only the checks with an extra argument that contains TEXT, to look at runs that tried a flag.
Added
loadmaster check --scenario FILEjudges the queue a file describes, written asstatus --jsonwrites it (-for stdin), by the same admission rule, with the CPU busy outside the queue the file gives: capture a real queue, change what you want to try (the CPU outside, a job's weight), and see what would start, with how many cores, and why the rest wait. It reads no config and no queue.
Breaking changes
status --jsonis format 2. New:state_since_ms;busy_beyond_running_jobsunrounded, andcpugiven whenever the CPU outside the queue was measured;other_queuesas{file, readable, running, waiting, parked}. Within format 2, fields may be added (ignore the ones you do not know); anything else, including a new value ofstate,needorreason, will be a new format. See the README, "Status as JSON".status's FOR of a resumed job counts from when it resumed, and that of an orphaned job is unknown (-), not from when it started.runandstatusnow advise 0.12 or later for every agent, rather than one version.
Install
mise use -g github:ktanaka101/loadmaster@0.14.0Or download the archive for your platform below: macOS (Apple Silicon and Intel) and Linux (x86_64 and arm64, statically linked).