自查清单
在提交 issue 之前,请确保您已完成以下步骤:
问题描述
目前对比了 EvalScope Perf 与 Guidellm、Genai Bench、aiperf、inference perf等压测工具,发现EvalScope Perf与其他工具相比性能差异巨大。
模型:Qwen3-8B
输入:1k
输出:128
推理框架:SGLang 0.5.6.post1
硬件:H200 x1
并发:20
即使当并发为1时,发现差异吞吐差异仍然很大。
单并发下,通过打印日志统计:
平均端到端时延:0.7378
平均每个请求之间的间隙:0.922
通过观察SLang 日志发现,EvalScope Perf 不能够使请求饱和。而其他框架不会存在类似问题。
初步观察代码判断,目前EvalScope Perf中采用阻塞等待策略,而不是持续填充策略,导致请求流出现间隙。
EvalScope 版本(必填)
v0.17.1
使用的工具
执行的代码或指令
evalscope perf \
--parallel 20 \
--number 500 \
--model Qwen-bf16-isl1k-osl128-056post1 \
--url http://localhost:8000/v1/chat/completions \
--api openai \
--dataset random \
--max-tokens 128 \
--min-tokens 128 \
--prefix-length 0 \
--min-prompt-length 1024 \
--max-prompt-length 1024 \
--tokenizer-path /global/models/Qwen3-8B \
--extra-args '{"ignore_eos": true}' \
--swanlab-api-key local \
--outputs-dir /workspace/outputs/evalscope-perf-qwen3-8b
其他压测工具脚本:
guidellm:
MODEL_PATH=/global/models/Qwen3-8B/
OUTPUT_PATH=/workspace/outputs/guidellm-eval/qwen3-8b-bf16-parallel20
rm -rf $OUTPUT_PATH
mkdir -p $OUTPUT_PATH
guidellm benchmark \
--target "http://localhost:8000" \
--processor $MODEL_PATH \
--request-type text_completions \
--profile concurrent \
--rate 20 \
--max-requests 500 \
--data "prompt_tokens=1024,output_tokens=128,samples=2000" \
--output-dir $OUTPUT_PATH \
--outputs json,csv,yaml,console
genai-bench:
BASE_PATH=/workspace/outputs/genai-bench-eval
NAME=qwen3-8b-bf16-parallel20
rm -rf $BASE_PATH/$NAME
genai-bench benchmark \
--api-backend sglang \
--api-base "http://localhost:8000" \
--api-model-name "Qwen3-8B" \
--api-key "xxx" \
--model-tokenizer "/global/models/Qwen3-8B" \
--server-engine "SGLang" \
--server-gpu-type "H200" \
--server-version "v0.5.6" \
--server-gpu-count 1 \
--task text-to-text \
--max-time-per-run 10 \
--max-requests-per-run 500 \
--num-concurrency 20 \
--traffic-scenario "D(1024,128)" \
--experiment-base-dir $BASE_PATH \
--experiment-folder-name $NAME
aiperf:
aiperf profile \
--model qwen3 \
--tokenizer /global/models/Qwen3-8B \
--endpoint-type chat \
--endpoint /v1/chat/completions \
--streaming \
--url localhost:8000 \
--synthetic-input-tokens-mean 1024 \
--synthetic-input-tokens-stddev 0 \
--output-tokens-mean 128 \
--output-tokens-stddev 0 \
--extra-inputs ignore_eos:true \
--concurrency 20 \
--request-count 500 \
--warmup-request-count 0 \
--num-dataset-entries 1000 \
--random-seed 100
自查清单
在提交 issue 之前,请确保您已完成以下步骤:
问题描述
目前对比了 EvalScope Perf 与 Guidellm、Genai Bench、aiperf、inference perf等压测工具,发现EvalScope Perf与其他工具相比性能差异巨大。
模型:Qwen3-8B
输入:1k
输出:128
推理框架:SGLang 0.5.6.post1
硬件:H200 x1
并发:20
即使当并发为1时,发现差异吞吐差异仍然很大。
单并发下,通过打印日志统计:
平均端到端时延:0.7378
平均每个请求之间的间隙:0.922
通过观察SLang 日志发现,EvalScope Perf 不能够使请求饱和。而其他框架不会存在类似问题。
初步观察代码判断,目前EvalScope Perf中采用阻塞等待策略,而不是持续填充策略,导致请求流出现间隙。
EvalScope 版本(必填)
v0.17.1
使用的工具
执行的代码或指令
其他压测工具脚本:
guidellm:
genai-bench:
aiperf: