我有一个完美的服务器在本地运行(0.13核心版本)。我在一个服务器机器上循环调用了flow.run() 1000次,这个服务器机器有64 GB内存和32个核心。当它运行到大约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内存)。然后Prefect UI开始在100左右挂起。
我不确定我是否正在使用Prefect工作流作为它的预期用途,但如果可能的话,我想解决这个问题。
发布于 2020-08-07 04:53:35
开源的Prefect Server不是为这种规模而设计的;正如in this new doc所描述的,这是人们迁移到Prefect Cloud的原因之一,Prefect Cloud是为规模和性能而设计的。
https://stackoverflow.com/questions/63289719
复制相似问题