pub struct BenchServeCommand {Show 30 fields
pub base_url: String,
pub model: String,
pub tokenizer: PathBuf,
pub target_backend: Option<BenchTargetBackend>,
pub http_connection_mode: BenchHttpConnectionMode,
pub concurrency: u32,
pub concurrency_sweep: Vec<u32>,
pub request_rate: Option<f64>,
pub dataset: String,
pub random_input_len: usize,
pub random_output_len: usize,
pub ignore_eos: bool,
pub enable_thinking: Option<bool>,
pub sharegpt_path: Option<PathBuf>,
pub shared_prefix_len: usize,
pub shared_suffix_len: usize,
pub num_prompts: u32,
pub warmup_requests: u32,
pub n_repeats: u32,
pub goodput: Option<Slo>,
pub timeout: f64,
pub fail_on_error: bool,
pub max_error_rate: Option<f64>,
pub require_ci: bool,
pub seed: Option<u64>,
pub output: String,
pub out: Option<PathBuf>,
pub hw_id: Option<String>,
pub commit_sha: Option<String>,
pub tag: Option<String>,
}Fields§
§base_url: StringBase URL of the ferrum (or other OpenAI-compatible) server.
model: StringModel identifier sent in request body’s model field.
Use the local path so vllm bench serve numbers compare 1:1.
tokenizer: PathBufPath to the model directory containing tokenizer.json. Used to
generate exact-length random token sequences.
target_backend: Option<BenchTargetBackend>Backend of the server under test. This is independent of the HTTP client’s own compile-time accelerator features.
http_connection_mode: BenchHttpConnectionModeHTTP connection lifecycle used by the benchmark client.
concurrency: u32Closed-loop concurrency (single cell). Default when no other
mode is given. Alias: --max-concurrency (legacy vLLM naming).
concurrency_sweep: Vec<u32>Closed-loop concurrency sweep. Overrides --concurrency. E.g.
--concurrency-sweep 1,4,16,32 runs four closed-loop cells.
request_rate: Option<f64>Open-loop arrival rate (req/s, Poisson). When set, overrides the closed-loop modes — this is the goodput-relevant scenario.
dataset: StringDataset: random (tokenizer-aware), sharegpt (load from JSONL),
shared-prefix (1024-tok shared prefix + unique suffix).
PLAYBOOK § 2 Scenario A (sharegpt) / Scenario C (shared-prefix).
random_input_len: usizeNumber of tokens per random prompt (--dataset random only).
random_output_len: usizeMax output tokens per request.
ignore_eos: boolSend vLLM-compatible ignore_eos=true so fixed-output benchmark
requests run until max_tokens instead of stopping on model EOS.
enable_thinking: Option<bool>Typed chat-template thinking control. Omitted from payloads unless set.
Path to a ShareGPT-format JSONL file (--dataset sharegpt).
Each line should be a {"conversations": [{"from": "...", "value": "..."}, ...]} object (HF anon8231489123/ShareGPT_Vicuna format).
Shared prefix length in tokens (--dataset shared-prefix only).
Per-request unique suffix length in tokens (--dataset shared-prefix).
num_prompts: u32Total prompts sent per run (warmup is counted separately).
warmup_requests: u32Warmup requests sent before measurement begins each run. Discarded from the metrics; PLAYBOOK § 0.3 mandates ≥ 10 for committed reports.
n_repeats: u32Independent repeats per cell. PLAYBOOK § 0.4: ≥ 3 unlocks stddev + CI95; n < 3 emits mean only.
goodput: Option<Slo>SLO triple for goodput. Format: ttft:500 tpot:50 e2el:30000
(or comma-separated). Goodput is reported only when all three
are set.
timeout: f64Per-request HTTP timeout in seconds.
fail_on_error: boolExit non-zero when any measured request errors. Warmup failures always fail. Release gates must set this.
max_error_rate: Option<f64>Maximum measured request error rate allowed when error enforcement is active.
require_ci: boolRequire n_repeats >= 3 so reports include CI/stddev evidence.
seed: Option<u64>Deterministic prompt-generation seed. Repeat i uses a stable derivation.
output: StringOutput format: json (BenchReport), jsonl (append one
BenchReport per line — used by scripts/compare-commits.sh),
md (human-readable markdown).
out: Option<PathBuf>Output file path. For jsonl, the file is opened append-mode so
repeated invocations against the same DB accumulate rows.
Alias: --result-file (legacy).
hw_id: Option<String>Override env.hw_id (defaults to auto-detected).
commit_sha: Option<String>Override env.commit_sha (defaults to git rev-parse --short HEAD).
tag: Option<String>Tag string written into the report’s model field’s suffix —
useful for the bench_vs_vllm.sh script which tags ferrum/vllm.
Trait Implementations§
Source§impl Args for BenchServeCommand
impl Args for BenchServeCommand
Source§fn augment_args<'b>(__clap_app: Command) -> Command
fn augment_args<'b>(__clap_app: Command) -> Command
Source§fn augment_args_for_update<'b>(__clap_app: Command) -> Command
fn augment_args_for_update<'b>(__clap_app: Command) -> Command
Command so it can instantiate self via
FromArgMatches::update_from_arg_matches_mut Read moreSource§impl Clone for BenchServeCommand
impl Clone for BenchServeCommand
Source§fn clone(&self) -> BenchServeCommand
fn clone(&self) -> BenchServeCommand
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl FromArgMatches for BenchServeCommand
impl FromArgMatches for BenchServeCommand
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Auto Trait Implementations§
impl Freeze for BenchServeCommand
impl RefUnwindSafe for BenchServeCommand
impl Send for BenchServeCommand
impl Sync for BenchServeCommand
impl Unpin for BenchServeCommand
impl UnsafeUnpin for BenchServeCommand
impl UnwindSafe for BenchServeCommand
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more