Skip to content

Commit b44b6e5

Browse files
committed
update readme
1 parent c902c7b commit b44b6e5

File tree

4 files changed

+87
-39
lines changed

4 files changed

+87
-39
lines changed

README.md

Lines changed: 48 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
<div align="center">
22
<img src="docs/images/logo.png" alt="LMeterX Logo" width="400"/>
3+
<p>
4+
<a href="https://github.com/MigoXLab/LMeterX/blob/main/LICENSE"><img src="https://img.shields.io/github/license/MigoXLab/LMeterX" alt="License"></a>
5+
<a href="https://github.com/MigoXLab/LMeterX/stargazers"><img src="https://img.shields.io/github/stars/MigoXLab/LMeterX" alt="GitHub stars"></a>
6+
<a href="https://github.com/MigoXLab/LMeterX/network/members"><img src="https://img.shields.io/github/forks/MigoXLab/LMeterX" alt="GitHub forks"></a>
7+
<a href="https://github.com/MigoXLab/LMeterX/issues"><img src="https://img.shields.io/github/issues/MigoXLab/LMeterX" alt="GitHub issues"></a>
8+
<a href="https://deepwiki.com/MigoXLab/LMeterX"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
9+
</p>
310
<p>
411
<a href="README_CN.md">简体中文</a> |
512
<strong>English</strong>
@@ -10,14 +17,15 @@
1017

1118
## 📋 Project Overview
1219

13-
LMeterX is a professional large language model performance testing platform that supports comprehensive load testing for any LLM service. Through an intuitive Web interface, users can easily create and manage test tasks, monitor testing processes in real-time, and obtain detailed performance analysis reports, providing reliable data support for model deployment and performance optimization.
20+
LMeterX is a professional large language model performance testing platform that can be applied to model inference services based on large model inference frameworks (such as LiteLLM, vLLM, TensorRT-LLM, LMDeploy, and others), and also supports performance testing for cloud services like Azure OpenAI, AWS Bedrock, Google Vertex AI, and other major cloud providers. Through an intuitive Web interface, users can easily create and manage test tasks, monitor testing processes in real-time, and obtain detailed performance analysis reports, providing reliable data support for model deployment and performance optimization.
1421

1522
<div align="center">
1623
<img src="docs/images/images.gif" alt="LMeterX Demo" width="800"/>
1724
</div>
1825

1926
## ✨ Core Features
2027

28+
- **Universal Framework Support** - Compatible with mainstream inference frameworks (vLLM, LiteLLM, TensorRT-LLM) and cloud services (Azure, AWS, Google Cloud)
2129
- **Full Model Compatibility** - Supports mainstream LLMs like GPT, Claude, and Llama with one-click stress testing
2230
- **High-Load Stress Testing** - Simulates high-concurrency requests to accurately detect model performance limits
2331
- **Multi-Scenario Coverage** - Supports streaming/non-streaming, supports text/multimodal/custom datasets<sup>![NEW](https://img.shields.io/badge/NEW-00C851?style=flat&labelColor=transparent)</sup>
@@ -59,38 +67,52 @@ curl -fsSL https://raw.githubusercontent.com/MigoXLab/LMeterX/main/quick-start.s
5967
```
6068
### Usage Guide
6169

62-
1. **Access Web Interface**: http://localhost:8080
63-
2. **Create Test Task**:
64-
- Configure target API address and model parameters
65-
- Select test type (text conversation/image-text conversation)
66-
- Set concurrent user count and test duration
67-
- Configure other advanced parameters (optional)
68-
3. **Monitor Test Process**: Real-time view of test logs and performance metrics
69-
4. **View and Export Test Results**: View detailed performance results and export reports.
70-
5. **AI Summary**: After configuring the AI service on the System Configuration page, you can perform AI-powered evaluation and summary of performance results on the Task Results page.
70+
1. **Access Web Interface**: Open http://localhost:8080
71+
2. **Create Test Task**: Navigate to Test Tasks → Create Task, configure LLM API request information, test data, and request-response field mapping
72+
**2.1 Basic Information**: For `/chat/completions` API, you only need to configure API path, model, and response mode. You can also supplement the complete payload in request parameters.
73+
**2.2 Data Payload**: Select built-in text datasets/multimodal datasets as needed, or upload custom JSONL data files.
74+
**2.3 Field Mapping**: Configure the prompt field path in payload, and response data paths for model output content, reasoning_content fields, usage fields, etc. This field mapping is crucial for updating request parameters with datasets and correctly parsing streaming/non-streaming responses.
75+
3. **API Testing**: In Test Tasks → Create Task, click the "Test" button in the Basic Information panel to quickly test API connectivity
76+
**Note**: For quick API response, it's recommended to use simple prompts when testing API connectivity.
77+
4. **Real-time Monitoring**: Navigate to Test Tasks → Logs/Monitoring Center to view full-chain test logs and troubleshoot exceptions
78+
5. **Result Analysis**: Navigate to Test Tasks → Results to view detailed performance results and export reports
79+
6. **Result Comparison**: Navigate to Model Arena to select multiple models or versions for multi-dimensional performance comparison
80+
7. **AI Analysis**: In Test Tasks → Results/Model Arena, after configuring AI analysis service, support intelligent performance evaluation for single/multiple tasks
7181

7282
## 🔧 Configuration
7383

7484
### Environment Variable Configuration
7585

7686
#### General Configuration
7787
```bash
78-
SECRET_KEY=your_secret_key_here # Application security key
79-
FLASK_DEBUG=false # Debug mode switch
80-
```
88+
# ================= Database Configuration =================
89+
DB_HOST=mysql # Database host (container name or IP)
90+
DB_PORT=3306 # Database port
91+
DB_USER=lmeterx # Database username
92+
DB_PASSWORD=lmeterx_password # Database password (use secrets management in production)
93+
DB_NAME=lmeterx # Database name
94+
95+
# ================= Frontend Configuration =================
96+
VITE_API_BASE_URL=/api # Base API URL for frontend requests (supports reverse proxy)
97+
98+
# ================= High-Concurrency Load Testing Deployment Requirements =================
99+
# When concurrent users exceed this threshold, the system will automatically enable multi-process mode (requires multi-core CPU support)
100+
MULTIPROCESS_THRESHOLD=1000
101+
102+
# Minimum number of concurrent users each child process should handle (prevents excessive processes and resource waste)
103+
MIN_USERS_PER_PROCESS=600
104+
105+
# ⚠️ IMPORTANT NOTES:
106+
# - When concurrency ≥ 1000, enabling multi-process mode is strongly recommended for performance.
107+
# - Multi-process mode requires multi-core CPU resources — ensure your deployment environment meets these requirements.
108+
109+
# ================= Deployment Resource Limits =================
110+
deploy:
111+
resources:
112+
limits:
113+
cpus: '2.0' # Recommended minimum: 2 CPU cores (4+ cores recommended for high-concurrency scenarios)
114+
memory: 2G # Memory limit — adjust based on actual load (minimum recommended: 2G)
81115

82-
#### Database Configuration
83-
```bash
84-
DB_HOST=mysql # Database host address
85-
DB_PORT=3306 # Database port
86-
DB_USER=lmeterx # Database username
87-
DB_PASSWORD=lmeterx_password # Database password
88-
DB_NAME=lmeterx # Database name
89-
```
90-
91-
#### Frontend Configuration
92-
```bash
93-
VITE_API_BASE_URL=/api # API base path
94116
```
95117

96118
## 🤝 Development Guide
@@ -135,6 +157,7 @@ LMeterX/
135157

136158
### Planned
137159
- [ ] CLI command-line tool
160+
- [ ] Support for `/v1/embedding` and `/v1/rerank` API stress testing
138161

139162
## 📚 Related Documentation
140163

README_CN.md

Lines changed: 36 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
<div align="center">
22
<img src="docs/images/logo.png" alt="LMeterX Logo" width="400"/>
3+
<p>
4+
<a href="https://github.com/MigoXLab/LMeterX/blob/main/LICENSE"><img src="https://img.shields.io/github/license/MigoXLab/LMeterX" alt="License"></a>
5+
<a href="https://github.com/MigoXLab/LMeterX/stargazers"><img src="https://img.shields.io/github/stars/MigoXLab/LMeterX" alt="GitHub stars"></a>
6+
<a href="https://github.com/MigoXLab/LMeterX/network/members"><img src="https://img.shields.io/github/forks/MigoXLab/LMeterX" alt="GitHub forks"></a>
7+
<a href="https://github.com/MigoXLab/LMeterX/issues"><img src="https://img.shields.io/github/issues/MigoXLab/LMeterX" alt="GitHub issues"></a>
8+
<a href="https://deepwiki.com/MigoXLab/LMeterX"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
9+
</p>
310
<p>
411
<strong>简体中文</strong> |
512
<a href="README.md">English</a>
@@ -19,6 +26,7 @@ LMeterX 是一个专业的大语言模型性能测试平台,支持基于大模
1926

2027
## ✨ 核心特性
2128

29+
- **通用框架支持** - 兼容主流推理框架(vLLM、LiteLLM、TensorRT-LLM)和云服务(Azure、AWS、Google Cloud)
2230
- **全模型兼容** - 支持 GPT、Claude、Llama 等主流大模型,一键发起压测
2331
- **高负载压测** - 模拟高并发请求,精准探测模型性能极限
2432
- **多场景覆盖** - 支持流式/非流式、文本/多模态/自定义数据集<sup>![NEW](https://img.shields.io/badge/NEW-00C851?style=flat&labelColor=transparent)</sup>
@@ -61,30 +69,46 @@ curl -fsSL https://raw.githubusercontent.com/MigoXLab/LMeterX/main/quick-start.s
6169

6270
### 使用指南
6371

64-
1. **访问界面** - 打开 http://localhost:8080
65-
2. **创建任务** - 配置API地址、模型参数、测试类型
66-
3. **实时监控** - 查看测试日志和性能指标
67-
4. **结果分析** - 查看详细性能结果,导出报告
68-
5. **AI分析** - 配置AI服务后,获得智能性能评估
72+
1. **访问界面**: 打开 http://localhost:8080
73+
2. **创建任务**: 导航至 测试任务 → 创建任务,配置LLM API请求信息、测试数据以及请求响应字段映射
74+
**2.1 基础信息**: 对于 `/chat/completions` API只需要配置API路径、模型以及响应模式即可,也支持在请求参数中补充完整payload
75+
**2.2 数据负载**: 根据需要选择内置的纯文本数据集/多模态数据集,也支持自定义JSONL数据或文件等
76+
**2.3 字段映射**: 配置payload中prompt对应字段路径,以及响应数据中对应模型输出的content、reasoning_content字段路径、usage字段路径等,此字段映射对于使用数据集更新请求参数和正确解析流式/非流式响应至关重要,请注意仔细填写
77+
1. **API测试**: 在 测试任务 → 创建任务,点击基础信息面板的"测试"按钮,快速测试API连通性
78+
**注意**: 为快速得到API响应,建议使用简单的prompt测试API连通性
79+
1. **实时监控**: 导航至 测试任务 → 日志/监控中心,查看全链路测试日志,排查异常
80+
2. **结果分析**: 导航至 测试任务 → 结果,查看详细性能结果,导出报告
81+
3. **结果对比**: 导航至 模型擂台,选择多个模型或版本进行多维度性能对比
82+
4. **AI分析**: 在 测试任务 → 结果/模型擂台,配置AI分析服务后,支持对单个/多个任务进行智能性能评估
6983

7084
## 🔧 配置说明
7185

7286
### 环境变量
7387

7488
```bash
75-
# 通用配置
76-
SECRET_KEY=your_secret_key_here
77-
FLASK_DEBUG=false
78-
79-
# 数据库配置
89+
=== 数据库配置 ===
8090
DB_HOST=mysql
8191
DB_PORT=3306
8292
DB_USER=lmeterx
8393
DB_PASSWORD=lmeterx_password
8494
DB_NAME=lmeterx
8595

86-
# 前端配置
96+
=== 前端配置 ===
8797
VITE_API_BASE_URL=/api
98+
99+
=== 高并发压测 部署要求 ===
100+
# 当并发用户数超过此阈值,系统将自动启用多进程模式(需多核 CPU 支持)
101+
MULTIPROCESS_THRESHOLD: 1000
102+
# 每个子进程至少承载的并发用户数(避免进程过多导致资源浪费)
103+
MIN_USERS_PER_PROCESS: 600
104+
# ⚠️ 重要提示:
105+
# - 当并发量 ≥ 1000 时,强烈建议启用多进程以提升性能。
106+
# - 多进程模式依赖多核 CPU 资源,请确保部署环境满足资源要求
107+
deploy:
108+
resources:
109+
limits:
110+
cpus: '2.0' # 建议至少分配 2 核 CPU(高并发场景建议 4 核或以上) #
111+
memory: 2G # 内存限制,可根据实际负载调整(推荐 ≥ 2G)
88112
```
89113

90114
## 🤝 开发指南
@@ -124,6 +148,7 @@ LMeterX/
124148

125149
### 规划中
126150
- [ ] CLI 命令行工具
151+
- [ ] 支持 `/v1/embedding``/v1/rerank` 接口压测
127152

128153
## 📚 相关文档
129154

docker-compose.dev.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ services:
6868
ENABLE_MULTIPROCESS: auto
6969
LOCUST_CPU_CORES: 4.0
7070
MULTIPROCESS_THRESHOLD: 1000 # Enable multiprocess only for 1000+ users
71-
MIN_USERS_PER_PROCESS: 600 # Each process handles at least 500 users
71+
MIN_USERS_PER_PROCESS: 600 # Each process handles at least 600 users
7272
# Process management and stability
7373
PYTHONUNBUFFERED: 1 # Ensure immediate log output
7474
LOCUST_WORKER_HEARTBEAT_INTERVAL: 3 # Worker heartbeat interval (seconds)

docker-compose.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ services:
6262
ENABLE_MULTIPROCESS: auto
6363
LOCUST_CPU_CORES: 4.0
6464
MULTIPROCESS_THRESHOLD: 1000 # Enable multiprocess only for 1000+ users
65-
MIN_USERS_PER_PROCESS: 600 # Each process handles at least 500 users
65+
MIN_USERS_PER_PROCESS: 600 # Each process handles at least 600 users
6666
# Process management and stability
6767
PYTHONUNBUFFERED: 1 # Ensure immediate log output
6868
LOCUST_WORKER_HEARTBEAT_INTERVAL: 3 # Worker heartbeat interval (seconds)
@@ -80,7 +80,7 @@ services:
8080
deploy:
8181
resources:
8282
limits:
83-
cpus: '2.0'
83+
cpus: '2.0' # Multi-process mode requires at least 2 cores
8484
memory: 2G
8585
reservations:
8686
cpus: '1.0'

0 commit comments

Comments
 (0)