size

Estimate worker counts from host memory and CPU.

julia --project=. -m DistSSHKit size [options] [--local] [hosts...]

Also: drive, size --help. Flag vocabulary: User Guide.

Flags

FlagMeaning
-l / --localInclude localhost in measurements (boolean; not drive --local N)
--gb-per-worker NAssume N GB per worker instead of measuring RSS
--probe PATHAfter package load, include this script on each probe worker and record peak RSS
--mem-headroom NFraction of RAM usable for workers (default 0.75)
--master-gb NGB to reserve for the master process (default 0.4)
-q / --quietHide terminal detail during measurement
--progressLive status (TTY default)
--verboseFull detail (non-TTY default)
-y / --yesReserved (no prompts today; accepted for shared peel)
--hosts CSVComma-separated SSH hosts (host:N → host name only)
--hosts-file PATHAppend SSH hosts (host:N → host name only)
-v / --versionPrint DistSSHKit version and exit
-h / --helpFull help

Remote project paths use the same resolution as drive (DISTRIBUTED_REMOTE_PROJECT_ROOT / setup remote root).

Measurement is a hint, not a job peak: baseline is package-load RSS; with --probe, peak is after that script runs. Worker counts use max(baseline, peak). Prefer an explicit host:N (CLI / API tokens) or --gb-per-worker when you know the workload. Prefer size!. It returns a WorkerPlan for drive!(session, …; plan=…); day-to-day runs usually use tokens instead (drive!("job.jl", "local:2"; …)).

DISTSSHKIT_JOBS (default 1) parallelizes Julia-path detection only; probe workers are still added one host at a time.

julia --project=. -m DistSSHKit size --local host1 host2
julia --project=. -m DistSSHKit size --probe warmup.jl --local

warmup.jl is ordinary Julia (top-level statements). Example:

# Allocate something representative of one worker's working set.
const _ = zeros(Float64, 10_000_000)