gunicorn预加载重启工作者,完全重启并重新加载

时间:2019-10-04 17:17:08

标签: gunicorn

我正在开发一项服务,在此服务中,我们会使用Gunicorn和flask执行一些ML推理。该服务会将大型模型(40g)预加载到装有64g机器上的内存中。

我正在使用的设置如下。

workers = 10
threads = 2
worker_class = 'gthread'
preload_app = True
max_requests = 10000
max_requests_jitter = 1000
daemon = False 

我期望的行为是当每个工作程序达到我们设置的重新启动请求数量时(也考虑到抖动),每个工作程序都会重新启动,但是,当一个工作程序重新启动时,每个工作程序都会重新启动,并且实际上会重新加载整个模型( 40g),因此所有传入请求都开始失败。我以为使用抖动,不应该出现所有工作人员都重新启动的问题,更重要的是,我可以避免再次重新加载整个模型。

我不确定此行为的根本原因是什么。与可用的内存相比,我占用的内存过多吗?

0 个答案:

没有答案