在用 ray 集群做数据处理时, 主节点 raylet 内存持续增长不释放.
ray work 内存占用并不高. 客户端节点 raylet 内存占用也不高, 但是主节点的 raylet 内存持续性增长, 直到 OOM 整个服务异常.
解决方法: 在使用 @task
装饰的函数结束前, 确保使用 gc.collect()
回收内存.
e.g
@task
def flow_task(*args, **kwargs):
# codes ...
result = 'Im ok.'
import gc
gc.collect()
return result