# Online API Server Benchmark Scripts

vLLM 0.9.2 在线评测测试的代码/脚本管理

## 更新日志

2025/10/16：新增vllm0.9.2在线测试的自动化测试脚本（by 刘煦）

## 使用方法

1. 需要安装jq和netcat
```
    apt-get install jq
    apt-get install netcat
```

2. 文件说明：

    1）auto_quick_check_config.json：配置文件

    2）online_quick_check_maxbs.sh：自动化启动脚本

    3）run_apiserver.sh：运行服务的脚本

    4）benchmarks：评测部分的代码，来源为vllm 0.9.2的GitHub

```
# 配置文件说明 auto_quick_check_config.json
{
    "DCU": "BW1000",                                        # DCU型号
    "vllm_version": "0.9.2",                                # vllm版本号
    "pkg_version": "dtk25.04.1",                            # DTK版本号
    "dst_path": "./result/",                                # 结果/日志存放目录
    "items":[
        {
            "model_name": "Qwen3-32B",                      # 模型名称
            "model_path": "/data/models/Qwen3-32B/",        # 模型路径
            "dtype": "float16",                             # 数据类型
            "tensor_parallel": [4],                         # 使用卡数
            "batch_size_start": 4,                          # 起始并发数
            "batch_size_interval": 4,                       # 并发数增加间隔
            "seqlen_tuple": ["512 512", "1024 1024"],       # 输入输出序列组合
            "ttft_thres": [3000, 3000],                     # ttft阈值，单位毫秒（"inf"表示无限制）
            "tpot_thres": [100, "inf"]                      # tpot阈值，单位毫秒（"inf"表示无限制）
        }
    ]
}

注：
1. 【输入输出序列组合】、【ttft阈值】、【tpot阈值】是一一对应的关系，数量需要确保一致
2. 【ttft阈值】、【tpot阈值】不可均设置成"inf"
```

3. 运行及逻辑：

    指令：bash online_quick_check_maxbs.sh

    逻辑：调用run_apiserver.sh启动服务 -> 监听端口是否启动 -> 启动后运行评测指令评测 -> 汇总数据

    最大并发数测试逻辑：从batch_size_start开始测试，并且逐步增加batch_size_interval，直到某一个并发数的ttft/tpot超过了设置的阈值停止测试；从output.csv中可以获取最大并发数
