Skip to content
C.W.K.
Stream
Lesson 01 of 07 · published

Nine Macs, Nine Jobs

~12 min · fleet, roles, launchd, capacity, measured

Level 0Spec-Sheet Skimmer
0 XP0/91 lessons0/19 achievements
0/100 XP to next level100 XP to go0% complete
"A fleet is not nine copies of one computer. It is nine capacities matched to nine loads, and the matching is the whole design."

The Roles, Read Live

The map track listed the nine Macs by chip and memory. This lesson lists them by what they were doing on 2026-09-15, read over ssh by role alias: the count of the household's own launchd services on each, and how long each had been up. The pattern is the one the rival track's decision table predicted. The two 512 GB Studios carry the loads that need the pool — office runs 45 household services, the engines and control planes of thirty-odd apps and Pippa herself; server runs seven household services (the image engine and the voice sibling among them) and, beside that count, the two inference daemons that hold the shared models — the MLX endpoint and the Ollama daemon. The two 192 GB M2 Ultras take the jobs that need a large pool but not the largest: worker leases media scans, transcoding and transcription; music is the studio. The laptops carry four or five services each — the sync clients, the voice tool, the guards — and the 64 GB mini serves music to the house. Every machine but office had been up nineteen days; office reboots when its engines are redeployed.

AliasChip, memoryHousehold servicesJobWhat decides the placementEvidence
officeM3 Ultra, 512 GB45engines, control planes, Pippa's homethe writer of every database lives where the pool is largest and the machine is always onread 2026-09-15
serverM3 Ultra, 512 GB7the inference hubcapacity: the models the household wants do not fit 192 GBread
workerM2 Ultra, 192 GB7leased media jobsplenty of pool for ffmpeg and scans; no need for the largestread
musicM2 Ultra, 192 GB5the music studiothe compute-heavy creative load; measured in the lab as the M2 Ultraread
macbook · pro2024 · pro2023M5 Max · M4 Max · M3 Max, 128 GB5 · 4 · 4laptops128 GB holds a 27B at 4 bits with a long context; they are clients of the hub for the restread
airM3, 24 GB4the drum kit's Maca 9B and the voice tool; the swap cliff is one model awayread
miniM4 Pro, 64 GB5the music serveran always-on appliance at 64 GBread

What the Matching Is Made Of

Three numbers place each job: the largest model it must hold, whether it must be on all the time, and whether it writes the truth. Capacity places the hub on a 512 GB Studio and the media worker on a 192 GB one. Always-on places the control planes on a desktop Studio that idles at nine watts (Apple's figure for the configuration) rather than on a laptop that closes. And the single-writer rule — one machine owns each database, everyone else is an API client — places the control planes on office and nothing else, which is why office's service count is six times any other Mac's. None of it is a performance ranking. The music Studio is the fastest decode machine in the house by the lab's own numbers and runs no inference at all; the job it has is the one it is best at, and inference is somewhere the pool is larger. The next six lessons are the six patterns that hold the fleet together.

Code

fleet_services.py — what each Mac is running, read by role alias·python
#!/usr/bin/env python3
"""Nine Macs, nine jobs: what each is running right now. Counts the household's own
launchd labels and reads uptime over ssh by role alias -- a property read, not a
benchmark, so it runs on every Mac including the ones the lab never loads."""
import subprocess, sys
ALIASES = sys.argv[1:] or ["office", "server", "worker", "music", "macbook", "pro2024", "pro2023", "air", "mini"]
REMOTE = 'n=$(launchctl list 2>/dev/null | grep -c "com.cwk"); u=$(uptime | sed "s/.*up //; s/,.*user.*//"); echo "$n|$u"'
print(f"{'alias':8} {'household services':>18}  uptime")
for a in ALIASES:
    try:
        out = subprocess.run(["ssh", "-o", "BatchMode=yes", "-o", "ConnectTimeout=6", a, REMOTE], capture_output=True, text=True, timeout=30).stdout.strip()
        n, up = (out.split("|") + ["?"])[:2]
        print(f"{a:8} {n:>18}  {up.strip()}")
    except (subprocess.TimeoutExpired, OSError) as exc:
        print(f"{a:8} unreachable ({exc.__class__.__name__})")
# 2026-09-15: office 45 (up 3 days) | server 7 | worker 7 | music 5 | macbook 5 | pro2024 4 | pro2023 4 | air 4 | mini 5 (all up 19 days)

External links

Exercise

Run fleet_services.py against the Macs you can reach — one counts. Write each machine's job in one phrase and the three placement facts beside it: largest model it must hold, always-on or not, and whether it owns a database. Then check whether any job is on a machine for a reason other than those three.
Hint
If a job sits on a machine because 'that is where it was installed', it is a job waiting to move. The common mis-placement is a control plane on a laptop — it works until the lid closes.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.