prefect - Prefect 如何同时扩展数千个工作流?
问题描述
我有一个在本地运行的完美服务器(0.13 核心版本)。我在具有 64 GB RAM 和 32 个 CPU 核心的服务器机器上循环调用 flow.run() 100 万次。当它运行到大约 300 次时,它开始从 GraphQL 抛出连接拒绝错误。
我仍在考虑是否在我的工作流程中使用 Prefect,但看起来它占用了太多 RAM。Prefect 如何同时扩展数千个工作流?
我用一个简单的例子运行工作流程:
176 from flask import Flask
177 app = Flask(__name__)
178
179 import prefect
180 client = prefect.Client()
181
182 @app.route('/')
183 def hello_world():
184 client.create_flow_run("032275d0-6c31-4dc5-bf32-5b2afadbe531")
185 return 'Hello, World!'
然后我调用 REST API 来触发从 1 到 1000 的流。
for i in {1..1000}; do curl localhost:5000/; done
我知道 GraphQL 正在使用大量内存(最多 10 GB RAM)。然后 Prefect UI 开始徘徊在 100 左右。
我不确定我是否将 Prefect 工作流程用作其预期用途,但如果可能的话,我想解决这个问题。
解决方案
开源 Prefect Server 并不是为这种规模而设计的。正如这个新文档中所描述的,这是人们迁移到 Prefect Cloud 的原因之一,它是为规模和性能而设计的。
推荐阅读
- wordpress - WordPress菜单链接的问题
- r - R - 在图上添加图例 par(mfrow = c(2, 1))
- python - 使用 GMM 获得的不同结果
- java - Intellij 想法未在项目结构 - 模块上显示“依赖项”选项卡
- python - 日期时间 - 从今天开始的一周
- javascript - 捆绑翻译文件还是不捆绑?
- haskell - 在 Haskell 中使用条件映射
- android - 将arrayList与数据库一起使用?
- platformio - 使用 platformio cli 安装 mjs 库(嵌入式 javascript)时出现问题
- android-studio - Android Studio 3.4 Canary 3 编译错误