Environment variables#
Runtime knobs M* reads from the environment. New variables should be documented here as they are introduced.
Communication#
Variable |
Default |
Meaning |
|---|---|---|
|
|
Transport selection for the ZeroMQ control mesh (see
|
|
constructor’s protocol |
Overrides the communicator protocol ( |
|
|
Host used to build peer endpoints when the protocol is |
|
|
Base of the deterministic entity-id → TCP port map ( |
|
|
SHM tensor-transport implementation. |
|
|
Size of each arena segment. The arena grows segment by segment; existing segments never move (registrations stay valid). |
|
|
Growth cap PER ENTITY. Every entity (workers + the api-server data
worker) creates its own arena, so node-wide /dev/shm demand can
reach |
|
|
Strict mode only ( |
|
|
Degrade gracefully at the segment cap: stage the tensor through the
per-uuid file protocol instead — slower, never fails, matching the
file transport’s saturation behavior. |
|
|
Optional grace before spilling, for deployments where another thread frees slots concurrently. Default 0: spill immediately (a worker cannot receive ACKs while it waits). |
|
|
|
|
|
Budget for TOTAL pinned host memory PER PROCESS, distinct from the
segment cap (pinned pages come out of the OS’s pageable pool
system-wide). Node-wide pinned demand is approx
|
|
|
TTL backstop for abort-orphaned slots (a request aborted after
staging but before all consumer ACKs defers reclaim forever).
A slot older than the request timeout cannot have a legitimate
reader, so a bound safely above it (recommend >= 2x the request
timeout) cannot race a real consumer. |
|
|
Under |
Serving (Rust frontend)#
Read by the mstar-server binary and its bridge
(mstar-serve --rust-frontend; see Installation).
Variable |
Default |
Meaning |
|---|---|---|
|
unset |
Path to the |
|
|
Per-request budget in the Rust frontend; on expiry the client gets an error and the request is aborted in the backend. |
|
|
Sample rate stamped on |
|
|
Allow |
|
|
Admission cap on in-flight generation requests; beyond it clients
get an immediate 503 instead of queueing into the request timeout.
|
|
|
Request body limit (multipart uploads included). |
|
unset |
Path to a HuggingFace |
Rust frontend limitations#
The Rust frontend carries no audio encoder or media muxer (the Python frontend
uses soundfile / ffmpeg), so two surfaces degrade:
/v1/audio/speechproduces onlywavandpcm. Any otherresponse_format(mp3,opus,flac, …) is rejected with a 400 rather than silently returned as WAV. Run the Python frontend for compressed containers./v1/videos/generations(Cosmos3) returns the video-only mp4. When a request setsgenerate_sound, Cosmos3 generates a separate audio track that mstar muxes into the mp4 as an AAC track; the Rust frontend cannot mux it, so the audio is dropped and a warning is logged. Do not setgenerate_soundon the Rust frontend (it spends compute on a track the client won’t receive), or run the Python frontend for sound video.