当我在分离的一次性dyno中运行管理命令时,它几乎立即超过了内存配额。当我不分离地运行时,它工作得很好。我想知道这是怎么回事。任何指向这种现象的文献的答案都是惊人的。你知道吗
这是一个Python管理命令(addfeederpolygons
),我估计它使用几百兆的内存,因为它与geodjango进行了一些密集的空间连接。你知道吗
底层代码在分离的一次性dyno和非分离的一次性dyno中是否有不同的执行方式?你知道吗
我希望结果是一样的,不管dyno是否分离运行。但实际输出如下:
未分离运行时
$ heroku run -a kevala-api-stage python manage.py addfeederpolygons --geography 25 --overwrite
› Warning: heroku update available from 7.0.33 to 7.19.3
Running python manage.py addfeederpolygons --geography 25 --overwrite on ⬢ kevala-api-stage... up, run.8817 (Standard-1X)
initialized redis cache
Imported all multipolygon data for 328922
Imported all multipolygon data for 329602
...etc...
这不会崩溃,而且运行速度比其他场景快得多。。。你知道吗
分离运行时
$ heroku run:detached -a kevala-api-stage python manage.py addfeederpolygons --geography 25 --overwrite
$ heroku logs --app kevala-api-stage --dyno run.5051 -n 1500
› Warning: heroku update available from 7.0.33 to 7.19.3
2019-01-30T19:23:10.894495+00:00 heroku[run.5051]: State changed from starting to up
2019-01-30T19:23:19.578170+00:00 app[run.5051]: initialized redis cache
2019-01-30T19:23:56.311511+00:00 heroku[run.5051]: Process running mem=553M(108.1%)
2019-01-30T19:23:56.311732+00:00 heroku[run.5051]: Error R14 (Memory quota exceeded)
2019-01-30T19:24:00.700959+00:00 app[run.5051]: Imported all multipolygon data for 328922
2019-01-30T19:24:03.325782+00:00 app[run.5051]: Imported all multipolygon data for 329602
...etc...
eventually fails with R15
所以,我暂时失去了评论的能力,所以我不得不写一个答案。好消息是,我认为您要做的是设置一个Log Drain来补偿您正在经历的内存泄漏和/或瓶颈。你知道吗
如果你不介意的话,我也可以看看有问题的日志(粘贴箱?)。我想看看到底发生了什么,那可能会有帮助。你知道吗
相关问题 更多 >
编程相关推荐