Environment variables#
Every environment variable Infera reads, grouped by subsystem. These are set on the process (engine, daemon, or server) — most have a CLI-flag equivalent where noted, and flags win over env vars. Each feature one-pager repeats the subset relevant to it; this page is the single place that lists them all.
Tip
The three that bite people most: PYTHONHASHSEED=0 (vLLM cross-restart cache
hits), MC_GID_INDEX=1 (cross-node RDMA), and --ipc=host so the engine and kvd
share the L2 arena.
kvd cache — connector (set on the engine process)#
Env |
Default |
What it does |
|---|---|---|
|
|
Unix socket the engine uses to reach the kvd daemon. |
|
(none) |
L3 write roots, |
|
|
GPU-direct (hipFile) read/write: |
|
|
Tokens per L3 chunk; |
|
|
L3 load mode: |
|
|
Hard cap on the GPU-direct L3 file volume. These files are connector-owned, so the daemon’s |
|
|
Free-space fraction the connector’s L3 reaper keeps; evicts (retention-priority, LRU) when violated. Matters most on a shared filesystem. |
|
|
L3 reaper tick period. |
|
|
L3 I/O worker counts ( |
|
|
Default per-request retention when the request carries none. Required on SGLang to exercise the long tier (its SPI doesn’t propagate per-request retention). |
|
(unset) |
libhipfile env (not Infera): set |
Per-request (not env) cache hint goes through extra_body.kv_transfer_params:
infera_retention — the vLLM connector honors none|short|long (default
long). See KV-Cache Offload.
Advanced kvd knobs
Edge-case tuning (async-load depth, ring buffers, save pool, fsync policy, arena
hugetlb/prefault, per-shard workers) exists as additional INFERA_KVD_* vars.
A normal deployment never needs them; run python -m infera.kvd --help for the
ones that matter.
PD disaggregation — RDMA transport (set on each engine)#
Env |
Typical |
What it does |
|---|---|---|
|
|
Mooncake RoCEv2 (routable) GID index — |
|
|
Same idea for the collectives (RCCL) path. |
|
|
Force RDMA instead of the intra-node HIP/XGMI shortcut (which advertises an empty segment a remote peer rejects). |
|
|
RoCEv2 GID index for the MoRI transport. |
|
(none) |
Routable IP a vLLM worker advertises for KV transfer (cross-node). Pair with |
|
|
libibverbs fork-safety; set for RDMA workers. |
See PD disaggregation for the bring-up checklist and the RDMA self-check.
Routing & transport (set on the server and every worker)#
Env |
Default |
What it does |
|---|---|---|
|
(injected by operator) |
NATS broker address when |
|
|
Max wait for the next reply chunk; expiry → 504 + cancel. |
|
|
Hard wall-clock cap on a whole request. |
|
|
Per-worker admission limit; backlog at the cap → 429. |
|
|
Retry on an alternate worker before the first token (never mid-stream). |
|
(operator default) |
Pod selector for |
|
|
Graceful-drain window on shutdown. |
Each has a CLI flag (flag > env > default); see Routing & transport and the CLI reference.
Engine correctness#
Env |
Value |
What it does |
|---|---|---|
|
|
Mandatory on vLLM — vLLM v1 salts block hashes per process, so without a fixed seed you get 0 cross-restart cache hits. SGLang doesn’t need it. |
|
|
Mounts dev routes including |