# frank-primary.service — tcclaviger RDNA4 vLLM endpoint # (Intel/GLM-5.3-Flash-W4A16-AutoRound int4, 131,072 x 2 seqs, bf16 KV, TP=2, # expert offload to pinned host RAM, 34-shard payload) on the 2x R9700 pair, # dankserver :7770. 2026-09-30 cutover from orcarouter # Qwen3.8-Flash-Next-Uncensored-FP8 + MTP4; commit 2339fae is the pre-cutover # state and the rollback. # # Same port, same served alias; the harness models.yml id is unchanged. # The serve script drives `podman run` directly (the image entrypoint execs # `vllm serve`) and then waits on the container, so a crashed engine is a # nonzero ExecStart and Restart=on-failure is real. # # WHY A ROOT UNIT (not a rootless quadlet): the expert-offload shape pins # 73.64 GiB per rank of host RAM (the expert host rows). Pinned pages are charged against RLIMIT_MEMLOCK; dank's # login session on this host carries 8 MiB and a user quadlet is capped by the # user manager's own hard limit — raising that means restarting # user@1000.service and bouncing every user container on the host. A root unit # grants LimitMEMLOCK=infinity to the dank process via PID1, and the image # stays in dank's rootless podman storage. [Unit] Description=frank-primary — tcclaviger vLLM GLM-5.3-Flash int4 W4A16 on 2x R9700 After=network-online.target Wants=network-online.target [Service] User=dank Group=dank # The tiered-expert offloader pins host RAM; an RLIMIT_MEMLOCK smaller than # the pinned set fails the load mid-start. PID1 grants infinity here — # parity with the fleet's other LLM units. LimitMEMLOCK=infinity Environment="FRANK_PRIMARY_ENV_FILE=/home/dank/serverAppConfigs/scripts/frank-primary.env" ExecStart=/home/dank/serverAppConfigs/scripts/serve-frank-primary.sh # systemd stop: wait alone cannot stop the container child; stop it # explicitly. vLLM 0.26 drains gracefully on SIGTERM. ExecStop=/usr/bin/podman stop -t 120 frank-primary-glm # Boot cost: int4 payload page-in plus torch compile/graph capture — # ~7 min measured 2026-09-30 on a warm page cache, longer cold. TimeoutStartSec=1800 Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target