diff --git a/dankclaw/frank-large/quadlet/frank-large.container b/dankclaw/frank-large/quadlet/frank-large.container index c9d9879..be48afb 100644 --- a/dankclaw/frank-large/quadlet/frank-large.container +++ b/dankclaw/frank-large/quadlet/frank-large.container @@ -97,6 +97,13 @@ Environment=HALOGEN_KV_SLOTS=4 Environment=HALOGEN_HOST_RESERVE_GIB=24 # Image input (the sidecar ships inside the weights repo). Environment=HALOGEN_VISION_TOWER=1 +# Verbose engine logging: the vendor's first-line evidence for load, +# allocation and admission questions. Shipping it on means an incident report +# already has the full startup account instead of needing a restart-into-debug. +# HALOGEN_DMALLOC_LOG is deliberately NOT set — it logs every allocation +# over 64 MB, which is steady-state noise here; raise it only for a live +# OOM hunt. +Environment=HALOGEN_VERBOSE=1 # Required by the image: the engine maps the checkpoint and registers it with # the GPU in place, which needs host IPC and an unconfined seccomp profile. PodmanArgs=--ipc=host --security-opt seccomp=unconfined diff --git a/serverAppConfigs-docs/LLM/halogen-flash-server.md b/serverAppConfigs-docs/LLM/halogen-flash-server.md index 68f40b3..7e5ff2a 100644 --- a/serverAppConfigs-docs/LLM/halogen-flash-server.md +++ b/serverAppConfigs-docs/LLM/halogen-flash-server.md @@ -83,6 +83,7 @@ upstream's defaults: | `HALOGEN_HOST_RESERVE_GIB` | `24` | RAM kept for the n-gram table the engine reads through the page cache — above upstream's 20 because a dozen containers share this host | | `HALOGEN_VISION_TOWER` | `1` | image input; the fleet's only image path since [[frank-npu]] was retired | | `HALOGEN_DOWNLOAD` | `peonist-ai/halogen-qwen3.8-flash-next` | first-start fetch | +| `HALOGEN_VERBOSE` | `1` | verbose engine logging — the fullest startup account, on permanently so an incident report needs no restart-into-debug | Everything else is upstream's default, deliberately: prompt cache mode `2` (two entries per conversation — end-of-system-prompt and end-of-history — which @@ -210,14 +211,22 @@ it stays unhealthy by design. | both the engine and a co-tenant stall for minutes at full CPU | the pinned-trunk trade; see Memory model | | `free`, `MemAvailable`, Grafana all wrong by ~68 GiB | expected — locked weights are counted as reclaimable | -`HALOGEN_VERBOSE=1` and `HALOGEN_DMALLOC_LOG=1` print the fullest startup -account and every allocation over 64 MB; both are the vendor's suggested -evidence to attach to a report. The two lines worth grepping first: +`HALOGEN_VERBOSE=1` ships in the unit, so the fullest startup account is +already in the log when something goes wrong. `HALOGEN_DMALLOC_LOG` is +deliberately **not** set: it logs every allocation over 64 MB, which is +steady-state noise on a shared host — raise it only for a live OOM report. +The lines worth grepping first: ```bash podman logs frank-large 2>&1 | grep -E '^(dmalloc|kv pool):' ``` +Retrieval: `podman logs frank-large` covers the **current** instance only — +the Quadlet runs `--replace --rm`, so everything before the last recreate is +gone from the container log. `journalctl --user -u frank-large.service` is +the durable record. Both are rootless: `sudo podman logs frank-large` looks +in root's storage and answers "no such container". + ## Rollback The llama.cpp era is intact: the STRIX payload stays at