# llm-grill：大语言模型推理服务器的综合基准测试工具

> llm-grill是一个命令行工具，用于对vLLM、SGLang、llama.cpp和LiteLLM等LLM推理服务器进行全面基准测试，支持多轮对话场景和负载渐变测试。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-04T16:16:27.000Z
- 最近活动: 2026-04-04T16:22:40.998Z
- 热度: 163.9
- 关键词: llm-grill, 基准测试, vLLM, SGLang, llama.cpp, LiteLLM, TTFT, TPOT, KV缓存, 负载测试
- 页面链接: https://www.zingnex.cn/forum/thread/llm-grill
- Canonical: https://www.zingnex.cn/forum/thread/llm-grill
- Markdown 来源: ingested_event

---

# llm-grill：大语言模型推理服务器的综合基准测试工具

随着大语言模型在生产环境中的部署越来越普遍，如何准确评估和比较不同推理服务器的性能成为了一个关键问题。llm-grill项目提供了一个专门设计的命令行工具，用于对主流LLM推理服务器进行全面、可重复的基准测试。

## 为什么需要专门的LLM基准测试工具

传统的API性能测试工具（如Apache Bench、wrk）虽然可以测量请求延迟和吞吐量，但它们无法捕捉LLM推理的独特特性。大语言模型的推理过程涉及：

- **流式生成**：token逐个返回，需要测量首token时间（TTFT）和每个token的生成时间（TPOT）
- **上下文依赖**：多轮对话中，KV缓存的命中与否会显著影响性能
- **资源密集型**：GPU显存、KV缓存利用率直接影响服务能力
- **负载敏感**：并发请求的增加可能导致非线性性能下降

llm-grill专门针对这些特性设计，提供了传统工具无法提供的深度洞察。

## 核心功能与支持的推理后端

llm-grill支持当前主流的LLM推理服务器：

| 后端 | 类型 | 指标来源 | 特殊功能 |
|------|------|---------|---------|
| vLLM | vllm | Prometheus /metrics | KV缓存利用率监控 |
| SGLang | sglang | Prometheus /metrics | 缓存命中率 |
| llama.cpp | llamacpp | /health端点 | GGUF模型支持 |
| LiteLLM | litellm | 网关路由 | 多后端代理 |
| OpenAI兼容 | openai | — | 复用vLLM客户端 |

工具测量的核心指标包括：

**延迟指标**：
- **TTFT**（Time to First Token）：从发送请求到接收到第一个token的时间（客户端测量，包含网络延迟）
- **TPOT**（Time Per Output Token）：(端到端延迟 - TTFT) / (生成token数 - 1)
- **端到端延迟**：从请求发送到接收最后一个token的总时间

**吞吐量指标**：
- **tokens/s**：生成token数 / 端到端延迟
- **成功率**：无错误完成的请求百分比

**对话质量指标**（多轮对话场景）：
- **轮次间比率**：平均(第n轮TTFT) / 平均(第0轮TTFT)，小于1表示KV缓存减少了预填充时间
- **上下文增长因子**：平均(最后一轮端到端延迟) / 平均(第一轮端到端延迟)，大于1表示延迟随上下文增加
- **KV缓存命中率**：从缓存服务的提示token比例（仅SGLang）
- **KV缓存利用率**：GPU KV缓存容量使用比例（仅vLLM）

## 场景配置与负载测试

llm-grill使用YAML文件定义测试场景，支持高度灵活的配置：

```yaml
name: my-scenario
description: 可选描述

backends:
  - name: gpu-vllm
    url: http://gpu-vllm:8000
    api_key: none
    type: vllm
    timeout: 120.0

models:
  - name: devstral-small-2-24b
    max_tokens: 512
    temperature: 0.0

conversations:
  - name: multi-turn-debug
    turns:
      - role: system
        content: "You are an expert developer."
      - role: user
        content: "My FastAPI app returns 500 errors under load. What should I check?"
      - role: user
        content: "The DB connection pool is exhausted. How do I configure it in SQLAlchemy?"

targets:
  - backend: gpu-vllm
    model: devstral-small-2-24b
    conversation: multi-turn-debug

load:
  concurrent_users: 10
  iterations: 3
  ramp_up_seconds: 5.0
  think_time_seconds: 0.0
```

每个`role: user`的turn会触发一个推理请求。对话历史（包括助手回复）会被传递，因此服务器看到的是不断增长的上下文。

### 负载渐变测试

通过添加`ramp_levels`配置，可以在单次运行中扫描多个并发级别：

```yaml
load:
  iterations: 3
  ramp_levels: [1, 5, 10, 20, 50, 100]
  ramp_pause_seconds: 10.0
  think_time_seconds: 0.0
```

结果会标记`concurrent_users_level`，并在**负载渐变结果**表格中按`(server, model, users)`排序显示，帮助识别系统的性能拐点。

## 安装与使用

llm-grill需要Python 3.11+和uv包管理器：

```bash
uv tool install llm-grill
```

验证安装：
```bash
llm-grill --version
```

### 基本工作流

**1. 检查连通性**
```bash
llm-grill ping scenarios/my-bench.yaml
```

**2. 运行基准测试**
```bash
llm-grill run scenarios/my-bench.yaml --output results.jsonl
```

运行后自动打印：
- **基准测试摘要**——每个服务器/模型的延迟、吞吐量、成功率
- **对话质量指标**——KV缓存命中率、轮次间延迟比率、上下文增长因子
- **负载渐变结果**——（如果设置了`ramp_levels`）每个并发级别的结果

**3. 从已有结果生成报告**
```bash
# 终端表格（摘要+对话指标）
llm-grill report results.jsonl

# JSON格式（可管道传输）
llm-grill report results.jsonl --format json

# CSV格式（原始请求，适合pandas分析）
llm-grill report results.jsonl --format csv --output summary.csv
```

## GPU监控与高级功能

llm-grill支持通过SSH收集GPU指标（利用率、显存、温度、功耗）：

```yaml
backends:
  - name: gpu-vllm
    url: http://gpu-vllm:8000
    type: vllm
    gpu_monitoring: true
    ssh_host: gpu-vllm
    ssh_user: root
```

这需要在目标主机上安装nvidia-smi并配置SSH密钥访问。

## 输出格式与数据分析

llm-grill使用JSONL格式输出，每行一个JSON对象，支持增量写入：

```json
{
  "scenario": "my-scenario",
  "target_server": "gpu-vllm",
  "target_model": "devstral-small-2-24b",
  "conversation": "multi-turn-debug",
  "turn": 1,
  "iteration": 0,
  "user_id": 3,
  "timestamp_start": "2026-03-10T14:00:00+00:00",
  "ttft_s": 0.142,
  "tpot_s": 0.018,
  "e2e_latency_s": 1.23,
  "prompt_tokens": 45,
  "completion_tokens": 67,
  "success": true
}
```

这种格式便于后续使用pandas、jq或其他工具进行深度分析。

## 实际应用场景

llm-grill适用于多种实际场景：

**容量规划**：通过负载渐变测试确定系统在不同并发级别下的表现，找到性能拐点，为生产环境的容量规划提供数据支持。

**后端选型比较**：在相同硬件和模型配置下，比较vLLM、SGLang和llama.cpp的性能特征，选择最适合特定工作负载的后端。

**回归测试**：在CI/CD流程中集成llm-grill，确保代码变更不会引入性能回归。项目本身就在GitHub Actions中运行CI测试。

**多轮对话优化**：通过对话质量指标识别KV缓存配置问题，优化长上下文场景下的用户体验。

## 总结与展望

llm-grill填补了LLM推理性能测试领域的工具空白。它不仅提供了传统负载测试工具的基本功能，还针对大语言模型的独特特性（流式生成、KV缓存、多轮对话）提供了专门的测量和分析能力。

随着LLM部署规模的扩大和推理优化技术的快速发展，像llm-grill这样的专业基准测试工具将成为基础设施团队的标准装备。项目的Apache 2.0许可证和活跃的GitHub社区（包括CI/CD集成）确保了其可持续发展和广泛采用。

对于正在评估或优化LLM推理基础设施的团队，llm-grill提供了一个科学、可重复、全面的性能评估框架，帮助做出数据驱动的技术决策。
