本地部署DeepSeek-R1(Dify压力测试和性能调优)

安装压测软件

为了有效测试,应在局域网设备测试,我这里用的服务器是局域网内的Ubuntu,下载的压测软件是WRK

复制代码
apt install wrk

测试脚本

为了省事我直接在/root目录下新建lua脚本

复制代码
vim test.lua

脚本内容如下,app-xxxx更换为你工作流的API密钥

复制代码
wrk.method = "POST"
wrk.body = '{"inputs":{"query":"1"},"response_mode":"streaming","user":"dcf压测"}'
wrk.headers["Content-Type"] = "application/json"
wrk.headers["Authorization"] = "Bearer app-08mesPqsdYfybwN6iIjyVcji"

新建测试工作流

这里只新建了个空的工作流直接返回user_id,不加大模型,加上模型有其他延迟

API密钥在检测里面创建

开始压测

测试命令

复制代码
wrk -t50 -c200 -d20s -s test.lua --timeout 10s --latency http://192.168.11.119/v1/workflows/run

【测试20线程,200个链接,持续20秒,持续请求工作流10秒】

平均延迟:251.70毫秒,最大延迟:1.79秒,QPS:每秒851次

性能调优

修改工作进程数量参数SERVER_WORKER_AMOUNT,默认为1,官方参考公式:cpu核数*2+1。

我这里是CPU64核,256G内存,试了一下调成129,Dify有点动不了,然后我改成了65(每次修改.env文件参数需重启Dify)

#将默认的1参数改大,参考cpu核数*2+1

复制代码
SERVER_WORKER_AMOUNT=65

再压测一下,明显快了很多

性能上来了,但是返现Dify里面的所有应用会提示报错:Internal Server Error

同时返回了很多非2XX和3XX响应,还需要修改连接池数量参数,避免超过连接数

我这里将SQLALCHEMY_POOL_SIZE、POSTGRES_MAX_CONNECTIONS、SQLALCHEMY_MAX_OVERFLOW三个参数全部调到了3000,默认30、100能不超过吗。

复制代码
SQLALCHEMY_POOL_SIZE=3000
POSTGRES_MAX_CONNECTIONS=3000
#注意默认.env配置文件里没有SQLALCHEMY_MAX_OVERFLOW这个参数,需手动添加
SQLALCHEMY_MAX_OVERFLOW=3000

重启Dify再测试,测一次1700+个对话

相关推荐
梦梦代码精10 小时前
开源AI应用平台BuildingAI解析:插件化架构、应用市场与热门案例
人工智能·机器学习·docker·开源
测试修炼手册10 小时前
[测试技术] JUnit 6 入门与实战:断言、参数化与 Mockito
数据库·junit·sqlserver
小月土星11 小时前
1.0 从零构建 DeepSeek R1 WebGPU 浏览器推理应用:一次现代前端工程与端侧 AI 的深度碰撞
浏览器·deepseek
IT瑞先生12 小时前
Docker快速部署Mysql的三种方法——实操篇
mysql·adb·docker
梦远青城13 小时前
Docker 部署python的paddle进行OCR文字识别身份证
python·docker·ocr·paddle·身份证识别
云卷云舒___________14 小时前
阿里开源Qwen3.8 2.4T模型预览版、并推出Token Plan订阅、DeepSeek Harness与V4正式版同发 | 7月20日 AI日报
ai·阿里·deepseek·ai日报·harness·qwen38·tokenplan
java_logo14 小时前
ELK Docker Compose 部署指南:轻松搭建日志检索平台
elk·elasticsearch·docker·容器·kibana·logstash·轩辕镜像
ShallWeL14 小时前
Orin 上用 Docker 跑通目标检测功能
人工智能·目标检测·docker·容器
不爱记笔记14 小时前
2026 WAIC大会亮点解析!超节点、机器人与AI应用全面开花
人工智能·ai·机器人·具身智能·deepseek
辰同学ovo15 小时前
用“舞台换景”讲清 Docker 的 Restart 与 Recreate
运维·docker·容器