Skip to content

Commit 74d8196

Browse files
committed
fix stop_task
1 parent 140ec82 commit 74d8196

File tree

9 files changed

+110237
-242649
lines changed

9 files changed

+110237
-242649
lines changed

README.md

Lines changed: 57 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,32 @@
1515

1616
# LMeterX
1717

18+
## Contents
19+
- [LMeterX](#lmeterx)
20+
- [Contents](#contents)
21+
- [📋 Project Overview](#-project-overview)
22+
- [✨ Core Features](#-core-features)
23+
- [Feature Comparison](#feature-comparison)
24+
- [🏗️ System Architecture](#️-system-architecture)
25+
- [🚀 Quick Start](#-quick-start)
26+
- [Environment Checklist](#environment-checklist)
27+
- [One-Click Deployment (Recommended)](#one-click-deployment-recommended)
28+
- [Data \& Volume Layout](#data--volume-layout)
29+
- [Usage Guide](#usage-guide)
30+
- [🔧 Configuration](#-configuration)
31+
- [Database Configuration](#database-configuration)
32+
- [Resource Configuration](#resource-configuration)
33+
- [🤝 Development Guide](#-development-guide)
34+
- [Technology Stack](#technology-stack)
35+
- [Project Structure](#project-structure)
36+
- [Development Environment Setup](#development-environment-setup)
37+
- [🗺️ Development Roadmap](#️-development-roadmap)
38+
- [In Development](#in-development)
39+
- [Planned](#planned)
40+
- [📚 Related Documentation](#-related-documentation)
41+
- [👥 Contributors](#-contributors)
42+
- [📄 Open Source License](#-open-source-license)
43+
1844
## 📋 Project Overview
1945

2046
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.
@@ -26,11 +52,11 @@ LMeterX is a professional large language model performance testing platform that
2652
## ✨ Core Features
2753

2854
- **Universal Framework Support** - Compatible with mainstream inference frameworks (vLLM, LiteLLM, TensorRT-LLM) and cloud services (Azure, AWS, Google Cloud)
29-
- **Full Model Compatibility** - Supports mainstream LLMs like GPT, Claude, and Llama with one-click stress testing
55+
- **Full Model Compatibility** - Supports mainstream LLMs like GPT, Claude, and Llama, also supports large document parsing models such as [MinerU](https://github.com/opendatalab/MinerU) and [dots.ocr](https://github.com/rednote-hilab/dots.ocr).
3056
- **High-Load Stress Testing** - Simulates high-concurrency requests to accurately detect model performance limits
31-
- **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>
32-
- **Professional Metrics** - Core performance metrics including first token latency, throughput(RPS、TPS), and success rate
33-
- **AI Smart Reports** - AI-powered performance analysis<sup>![NEW](https://img.shields.io/badge/NEW-00C851?style=flat&labelColor=transparent)</sup>, multi-dimensional model comparison and visualization
57+
- **Multi-Scenario Coverage** &nbsp;<img src="docs/images/badge-new.svg" alt="NEW" height="16" /> - Supports streaming/non-streaming, supports text/multimodal/custom datasets
58+
- **Professional Metrics** - Core performance metrics including first token latency, throughput(RPS、TPS), and success rate
59+
- **AI Smart Reports** &nbsp;<img src="docs/images/badge-new.svg" alt="NEW" height="16" /> - AI-powered performance analysis, multi-dimensional model comparison and visualization
3460
- **Web Console** - One-stop management for task creation, stopping, status tracking, and full-chain log monitoring
3561
- **Enterprise-level Deployment** - Docker containerization with elastic scaling and distributed deployment support
3662

@@ -58,64 +84,62 @@ LMeterX adopts a microservices architecture design, consisting of four core comp
5884

5985
## 🚀 Quick Start
6086

61-
### Environment Requirements
62-
- Docker 20.10.0+
63-
- Docker Compose 2.0.0+
64-
- At least 4GB available memory
65-
- At least 5GB available disk space
66-
67-
### One-Click Deployment (Recommended)
87+
### Environment Checklist
88+
- Docker 20.10.0+ with the daemon running
89+
- Docker Compose 2.0.0+ (`docker compose` plugin or standalone `docker-compose`)
90+
- At least 4GB free memory and 5GB disk space
6891

69-
> **Complete Deployment Guide**: See [Complete Deployment Guide](docs/DEPLOYMENT_GUIDE.md) for detailed instructions on all deployment methods
92+
> **Need more deployment options?** See the [Complete Deployment Guide](docs/DEPLOYMENT_GUIDE.md) for Kubernetes, air-gapped installs, and advanced tuning.
7093
71-
Use pre-built Docker images to start all services with one click:
94+
### One-Click Deployment (Recommended)
7295

7396
```bash
74-
# Download and run one-click deployment script
97+
# Download and run the one-click deployment script
7598
curl -fsSL https://raw.githubusercontent.com/MigoXLab/LMeterX/main/quick-start.sh | bash
7699
```
77100

78-
### Multi-Instance Deployment (Supports Concurrent Testing Tasks)
101+
After the script finishes:
102+
- Check container health: `docker compose ps`
103+
- Tail logs if needed: `docker compose logs -f`
104+
- Scale services (if needed): `docker compose up -d --scale backend=2 --scale engine=2`
105+
- Open the web UI at http://localhost:8080 (see [Usage Guide](#usage-guide))
79106

80-
```bash
81-
# Download the deployment file docker-compose.yml
82-
curl -fsSL -o docker-compose.yml https://raw.githubusercontent.com/MigoXLab/LMeterX/main/docker-compose.yml
83-
# Start multiple instances using the --scale
84-
# Start 2 backends + 2 engines (the number can be adjusted as needed)
85-
docker compose up -d --scale backend=2 --scale engine=2
86-
```
107+
### Data & Volume Layout
108+
- `./data` → mounted to `/app/data` in the `engine` service (large datasets are **not** baked into the image)
109+
- `./logs` → shared log output for backend and engine
110+
- `./upload_files` → user-supplied payloads and exported reports
111+
112+
For custom data, please refer to the [Dataset Usage Guide](docs/DATASET_GUIDE.md).
87113

88114
### Usage Guide
89115

90116
1. **Access Web Interface**: Open http://localhost:8080
91-
2. **Create Test Task**: Navigate to Test Tasks → Create Task, configure LLM API request information, test data, and request-response field mapping
92-
- 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.
93-
- 2.2 Data Payload: Select built-in text datasets/multimodal datasets as needed, or upload custom JSONL/ShareGPT dataset files.
94-
- 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.
117+
2. **Create Test Task**: Navigate to Test Tasks → Create Task, configure API request information, test data, and request/response field mappings.
118+
- 2.1 Basic Information: For OpenAI-like and Claude-like APIs, you only need to configure API path, model, and response mode. You can also supplement the complete payload in request parameters.
119+
- 2.2 Data & load: Select the dataset type, concurrency, load testing time, etc., as needed.
120+
- 2.3 Field Mapping: For custom APIs, you need to configure the prompt field path in payload, and response data paths for model output fields, usage fields, etc. This field mapping is crucial for updating request parameters with datasets and correctly parsing streaming/non-streaming responses.
95121
> 💡 **Tip**: For custom multimodal dataset load tests, follow the [Dataset Guide](docs/DATASET_GUIDE.md) for data preparation, mounting, and troubleshooting.
96-
3. **API Testing**: In Test Tasks → Create Task, click the "Test" button in the Basic Information panel to quickly test API connectivity
97-
**Note**: For quick API response, it's recommended to use simple prompts when testing API connectivity.
122+
3. **API Testing**: In Test Tasks → Create Task, click the "Test" button in the Basic Information panel to quickly test API connectivity (use a lightweight prompt for faster feedback).
98123
4. **Real-time Monitoring**: Navigate to Test Tasks → Logs/Monitoring Center to view full-chain test logs and troubleshoot exceptions
99124
5. **Result Analysis**: Navigate to Test Tasks → Results to view detailed performance results and export reports
100125
6. **Result Comparison**: Navigate to Model Arena to select multiple models or versions for multi-dimensional performance comparison
101126
7. **AI Analysis**: In Test Tasks → Results/Model Arena, after configuring AI analysis service, support intelligent performance evaluation for single/multiple tasks
102127

103128
## 🔧 Configuration
104129

105-
### Environment Variable Configuration
130+
### Database Configuration
106131

107-
#### General Configuration
108132
```bash
109133
# ================= Database Configuration =================
110134
DB_HOST=mysql # Database host (container name or IP)
111135
DB_PORT=3306 # Database port
112136
DB_USER=lmeterx # Database username
113137
DB_PASSWORD=lmeterx_password # Database password (use secrets management in production)
114138
DB_NAME=lmeterx # Database name
139+
```
115140

116-
# ================= Frontend Configuration =================
117-
VITE_API_BASE_URL=/api # Base API URL for frontend requests (supports reverse proxy)
118-
141+
### Resource Configuration
142+
```bash
119143
# ================= High-Concurrency Load Testing Deployment Requirements =================
120144
# When concurrent users exceed this threshold, the system will automatically enable multi-process mode (requires multi-core CPU support)
121145
MULTIPROCESS_THRESHOLD=1000
@@ -133,7 +157,6 @@ deploy:
133157
limits:
134158
cpus: '2.0' # Recommended minimum: 2 CPU cores (4+ cores recommended for high-concurrency scenarios)
135159
memory: 2G # Memory limit — adjust based on actual load (minimum recommended: 2G)
136-
137160
```
138161

139162
## 🤝 Development Guide

0 commit comments

Comments
 (0)