为了更高效地进行测试,建议在局域网设备上操作。我使用的是一台局域网中的ubuntu服务器,并安装了wrk作为压测工具。
<code>apt install wrk</code>
为了方便,我在 /root 目录下创建了一个 Lua 脚本:
<code>vim test.lua</code>
脚本内容如下,请将 app-xxxx 替换为你自己的 API 密钥:
<code>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"</code>我新建了一个空的工作流,仅返回 user_id,不引入大模型,以避免额外的延迟。
API 密钥可在相关设置中创建。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

执行以下命令开始测试:
<code>wrk -t50 -c200 -d20s -s test.lua --timeout 10s --latency http://192.168.11.119/v1/workflows/run</code>
【使用50个线程,200个连接,持续20秒,请求工作流接口10秒】
平均延迟:251.70毫秒,最大延迟:1.79秒,QPS:每秒851次

调整工作进程数量参数 SERVER_WORKER_AMOUNT,默认值为1,官方推荐公式为:CPU核心数*2+1。
我的服务器配置是64核CPU、256G内存。尝试设置为129时,Dify反应迟缓,于是我改为65(每次修改 .env 文件后需重启 Dify)。
<code>SERVER_WORKER_AMOUNT=65</code>

再次进行压测,性能明显提升:

虽然性能提升了,但发现 Dify 中的所有应用均报错:Internal Server Error

同时出现了大量非2XX和3XX响应码,因此需要调整连接池大小,防止连接数超限。
我将 SQLALCHEMY_POOL_SIZE、POSTGRES_MAX_CONNECTIONS、SQLALCHEMY_MAX_OVERFLOW 这三个参数统一设置为3000,默认值分别为30、100,是否可以超过根据实际情况判断。
<code>SQLALCHEMY_POOL_SIZE=3000 POSTGRES_MAX_CONNECTIONS=3000 # 注意默认.env文件中没有 SQLALCHEMY_MAX_OVERFLOW 参数,需手动添加 SQLALCHEMY_MAX_OVERFLOW=3000</code>
重启 Dify 后再次测试,单次测试处理了1700+个请求:

以上就是本地部署DeepSeek-R1(Dify压力测试和性能调优)的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号