为了更高效地进行测试,建议在局域网设备上操作。我使用的是一台局域网中的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
【使用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)。
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+个请求:
以上就是本地部署DeepSeek-R1(Dify压力测试和性能调优)的详细内容,更多请关注php中文网其它相关文章!
DeepSeek (深度求索)杭州深度求索(DeepSeek)官方推出的AI助手,免费体验与全球领先AI模型的互动交流。它通过学习海量的数据和知识,能够像人类一样理解和处理信息。多项性能指标对齐海外顶尖模型,用更快的速度、更加全面强大的功能答疑解惑,助力高效美好的生活。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号