我有一个在本地运行的完美服务器(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 工作流程用作其预期用途,但如果可能的话,我想解决这个问题。