This document records benchmark-informed product direction for MLX Server Manager after local comparison work with mlx_lm.server and oMLX.
These notes are directional. They are not a universal performance claim and they do not change the v1.0 product boundary.
MLX Server Manager remains a Direct Mode app:
OpenAI-compatible client -> mlx_lm.server -> MLX model
The app manages the local mlx_lm.server process, shows state, and copies OpenAI-compatible connection settings. It is not an inference proxy, not a Chat UI, and not a multi-backend wrapper.
Model:
unsloth/Qwen3.6-35B-A3B-UD-MLX-4bit
Endpoints:
- oMLX:
http://127.0.0.1:8000/v1 - MLXServerManager-managed pure
mlx_lm.server:http://127.0.0.1:8080/v1
- Short single-request style workloads.
- Continuous
long_runrequest sequences. long_contextprompts.prompt_cache_stylerepeated-context style prompts.- Streaming time-to-first-token style checks.
- Performance depends on workload.
- MLX Server Manager should not claim that pure
mlx_lm.serveris always faster than oMLX. - In short and continuous single-request style workloads, oMLX was slightly better in some cases.
- In
long_context, puremlx_lm.serverwas clearly better in the measured run:- oMLX average latency: 4.844 seconds
mlx_lm.serveraverage latency: 3.141 seconds
- In
prompt_cache_style, puremlx_lm.serverwas better in the measured run:- oMLX average latency: 5.074 seconds
mlx_lm.serveraverage latency: 4.503 seconds
- Streaming TTFT favored pure
mlx_lm.serverstrongly in the measured run:- oMLX: about 0.872 seconds at 1k and about 2.3-2.4 seconds at 4k-16k
mlx_lm.server: about 0.14-0.15 seconds at 1k-16k
long_runstability was good for both systems:- 100 requests
- 100% success
- first10 and last10 latency degradation was minimal
- Earlier advanced launch option tests did not show clear improvement from aggressive tuning.
The benchmark results support Direct Mode for use cases that care about long context, repeated context, and fast streaming first token behavior. This is especially relevant for OpenAI-compatible clients such as Hermes Agent when they reuse context or benefit from low TTFT.
The results do not justify positioning MLX Server Manager as a universally faster oMLX replacement. oMLX can be competitive or slightly better for some short, continuous single-request workloads.
- Keep the default launch path simple.
- Keep Direct Mode as the primary architecture.
- Keep MLX Server Manager out of the inference request path.
- Continue presenting the app as a manager for
mlx_lm.server, not as a backend abstraction layer. - Treat Advanced Launch Options as future optional user-tunable controls.
- Do not enable aggressive launch tuning by default.
- Avoid Proxy mode, Chat UI, and request routing in the stable default direction.
Future optional Advanced Launch Options may include:
- Raw extra launch arguments.
- Chat template arguments.
- Prompt cache related options.
- Prefill, decode, and concurrency related options.
- Command preview.
- Validation before launch.
- It does not prove that pure
mlx_lm.serveris always faster than oMLX. - It does not prove that the same result applies to every model.
- It does not prove that the same result applies to every prompt shape.
- It does not prove that aggressive launch options should be enabled by default.
- It does not justify adding a proxy, Chat UI, or request router to MLX Server Manager.
- Repeat the same workload matrix across more models.
- Include more prompt lengths and repeated-context patterns.
- Compare cold start and warm start behavior separately.
- Track TTFT, total latency, throughput, memory, and failure rate together.
- Re-test optional Advanced Launch Options only as user-tunable experiments.
- Document command lines and environment assumptions for reproducibility.