性能测试方法
使用“vllm/benchmarks/benchmark_serving.py”文件进行吞吐量性能测试。
性能测试方法示例
- 在任意路径启动vLLM服务,如果需要添加优化请在启动服务前添加。
vllm serve /home/models/DeepSeek-R1-Distill-Llama-70B/ --tensor_parallel_size=8
- 进入benchmark_serving.py测试文件所在路径“vllm/benchmarks/”。
- 执行以下命令进行性能测试。命令参数说明如表1所示。
pip install datasets pandas python benchmark_serving.py --model /home/models/DeepSeek-R1-Distill-Llama-70B/ --dataset_name random --random-input-len 2048 --random-output-len 2048 --trust-remote-code --ignore-eos --num-prompts 1 --request_rate 1
表1 性能测试命令参数说明 参数
说明
--model /home/models/DeepSeek-R1-Distill-Llama-70B/
模型路径。
--dataset_name random
选择随机数据集。
--random-input-len 2048
输入token长度为2048。
--random-output-len 2048
输出token长度为2048。
--ignore-eos
忽略终止符,即输出到指定输出长度才停止。
--num-prompts 1
执行测试时发送的prompt数量为1。
--request_rate 1
执行测试时发送请求的速率为1。
测试输出结果类似下图,指标含义如表2所示。可主要通过TPOT(去除首token的耗时)进行优化前后的性能比较。
表2 测试输出结果指标说明 指标
说明
Successful requests
成功完成的请求数量。
Benchmark duration (s)
基准测试持续的时间。
Total input tokens
总输入token数,即所有请求中的输入token总数。
Total generated tokens
总生成的token数,即所有请求生成的输出token总数。
Request throughput (req/s)
请求吞吐量,表示每秒钟可以处理的请求数。
Output token throughput (tok/s)
输出token吞吐量,指的是每秒钟生成的输出token数量。
Total Token throughput (tok/s)
总token吞吐量(包括输入和输出),指的是每秒钟处理的总token数。
Time to First Token
首个令牌生成时间,从请求发出到收到第一个输出token所需的时间。
Time per Output Token (excl. 1st token)
每个输出token生成时间(不包括第一个令牌)。
Inter-token Latency
连续两个token之间的延迟。