Dynamo Performance Tuning#
Dynamo deployments provide routing and worker-engine controls for performance tuning. Start from the recipe published for your model and measure every change on the target hardware and request mix.
Important
The published recipe pins a validated image, model profile, deployment shape, and workload-specific engine settings. Changing them produces a configuration that requires separate validation.
Frontend Router Configuration#
The Frontend uses DYN_ROUTER_MODE, which defaults to kv.
DYN_FRONTEND_EXTRA_ARGS forwards additional arguments to the installed
Dynamo frontend. NIM does not validate the accepted frontend values or their
semantics, so confirm them against the Dynamo runtime version in the recipe’s
image.
Do not place frontend or --dyn-* arguments in NIM_PASSTHROUGH_ARGS. That
variable is parsed as worker-side vLLM arguments.
Worker Engine Configuration#
Set worker-side vLLM tuning through NIM_PASSTHROUGH_ARGS on the Worker
component. The published recipes use this variable for workload-specific
settings such as expert parallelism, cache behavior, batching, compilation,
speculative decoding, and KV-cache events.
Preserve profile-owned arguments and the NIM_PASSTHROUGH_ARGS value from the
published recipe unless you intend to revalidate the model configuration. In a
split deployment, do not set worker engine arguments on the Frontend.
For the complete NIM variable definitions, refer to Environment Variables.
Worker Scaling#
The Worker.replicas field in the published DGD recipe determines the number
of worker pods. Each recipe also pins the GPU request for one worker. Capacity
is therefore:
worker replicas x GPUs requested per worker
Before changing the replica count, confirm that the cluster has enough matching GPU capacity. Do not reduce the GPU count per worker or replace the selected model profile independently. Those values are coupled to the recipe’s tensor parallel configuration.
Measure the Effect#
The Dynamo Frontend serves Prometheus metrics at /v1/metrics. Each Worker
serves vLLM metrics at /metrics on its system port, which is configured with
NIM_HEALTH_PORT and defaults to 9090.
curl -s http://localhost:8000/v1/metrics \
| grep dynamo_frontend_cached_tokens
Interpret metric names and values using the documentation for the Dynamo runtime installed in the recipe’s image. For Frontend and Worker scrape targets, refer to Logging and Observability.