一个专业的 Ollama 模型性能压力测试工具,支持多线程并发测试、实时监控和详细的性能报告生成。
- 🚀 多线程并发测试 - 支持自定义并发线程数进行压力测试
- 📊 实时性能监控 - 实时显示 TPS、RPS、延迟等关键指标
- 🖥️ 系统资源监控 - 监控 CPU、内存、GPU 使用率和温度
- 📈 可视化报告 - 自动生成图表和详细的测试报告
- 🎯 自定义测试参数 - 灵活配置模型、测试时长、并发数等参数
- 📝 多样化提示词 - 支持自定义提示词文件进行测试
├── debug/
│ ├── ollama_stress_test.py # 主要的压力测试脚本
│ ├── 准备启动.py # 环境准备和依赖安装脚本
│ ├── 运行脚本.py # 快速启动脚本
│ └── prompts.txt # 测试用提示词文件
├── .vscode/
│ └── settings.json # VSCode 配置文件
└── README.md # 项目说明文档
运行准备脚本安装所需依赖:
python debug/准备启动.py或手动安装依赖:
pip install ollama pandas matplotlib psutil pynvmlpython debug/ollama_stress_test.py# 设置环境变量进行自定义测试
MODEL_NAME="deepseek-r1:32b" \
TEST_DURATION=300 \
CONCURRENT_THREADS=12 \
python debug/ollama_stress_test.pypython debug/运行脚本.py| 参数 | 默认值 | 说明 |
|---|---|---|
MODEL_NAME |
deepseek-r1:32b |
要测试的 Ollama 模型名称 |
TEST_DURATION |
600 |
测试持续时间(秒) |
CONCURRENT_THREADS |
8 |
并发线程数 |
TEMPERATURE |
0.7 |
模型生成温度 |
MAX_TOKENS |
512 |
最大生成 token 数 |
PROMPT_FILE |
prompts.txt |
提示词文件路径 |
- TPS (Tokens Per Second) - 每秒生成的 token 数
- RPS (Requests Per Second) - 每秒处理的请求数
- 平均延迟 - 单个请求的平均响应时间
- 成功率 - 请求成功的百分比
- CPU 使用率 - 处理器使用情况
- 内存使用率 - 系统内存占用
- GPU 利用率 - 显卡计算资源使用
- GPU 温度 - 显卡温度监控
- 显存使用率 - 显存占用情况
测试完成后会生成以下文件:
ollama_stress_test_YYYYMMDD_HHMMSS_requests.csv- 详细的请求记录ollama_stress_test_YYYYMMDD_HHMMSS_system.csv- 系统资源使用记录ollama_stress_test_YYYYMMDD_HHMMSS_report.json- 测试摘要报告ollama_stress_test_YYYYMMDD_HHMMSS_report.png- 可视化性能图表
编辑 debug/prompts.txt 文件添加自定义测试提示词:
解释量子计算的基本原理
用Python实现快速排序算法
写一篇关于人工智能未来发展的短文
如何优化深度学习模型的训练速度?
比较RESTful API和GraphQL的优缺点
- Python 3.7+
- Ollama 服务已安装并运行
- NVIDIA GPU(用于 GPU 监控功能)
- 足够的系统内存和显存
- 确保 Ollama 服务正在运行:
ollama serve - 测试前确认目标模型已下载:
ollama pull model_name - 高并发测试可能消耗大量系统资源,请根据硬件配置调整参数
- GPU 温度监控需要 NVIDIA 显卡和相应驱动
- 连接错误 - 确保 Ollama 服务正在运行
- 模型未找到 - 使用
ollama list检查已安装的模型 - GPU 监控失败 - 检查 NVIDIA 驱动和 pynvml 安装
- 内存不足 - 降低并发线程数或选择较小的模型
欢迎提交 Issue 和 Pull Request 来改进这个工具。
MIT License