进程 'forkPoolworker-5' pid:111 退出,但'signal 9 (SIGKILL)'



大家好,谁帮助我?python: 3.8

Django==4.0.4
celery==5.2.1

我正在使用python/Django/芹菜做一些事情,当我通过sql从hive获取数据时,我的celely worker得到这个错误"进程'forkPoolworker-5' pid:111退出'信号9 (SIGKILL)'"然后,我的任务不被用来完成,tcp连接正在关闭!我怎么做才能解出来呢?

我试着做:

CELERYD_MAX_TASKS_PER_CHILD = 1  # 单work最多任务使用数
CELERYD_CONCURRENCY = 3  # 单worker最大并发数
CELERYD_MAX_MEMORY_PER_CHILD = 1024*1024*2  # 单任务可占用2G内存
CELERY_TASK_RESULT_EXPIRES = 60 * 60 * 24 * 3
-Ofair

,但这些不用于解决。

SIGKILL是由系统引发的,很可能是由于内存或存储,通过运行-P solo选项或-c 1来监视一个芹菜任务占用了多少内存,并相应地分配足够的内存。

使用pmap <pid>ps -a -o rss,vsz查看内存占用情况。详细信息请搜索rss和vsz(简而言之,rss是RAM,vsz是虚拟内存)。

CELERYD_MAX_TASKS_PER_CHILD = 1在每个任务结束后杀死进程,因此CELERYD_MAX_MEMORY_PER_CHILD不影响ie worker在执行子进程运行限制之前等待任务完成。

最新更新