【问题标题】:Celery beat process allocating large amount of memory at startup芹菜节拍进程在启动时分配大量内存
【发布时间】:2018-04-23 12:07:00
【问题描述】:

我在 Heroku 上使用 Celery 3.1.23 运行 Django 1.9 网站。 RabbitMQ 用作代理。

重启beat worker后,内存使用量始终在497Mb左右。这会导致频繁出现错误 R14(超出内存配额),因为它很快达到 512Mb 限制。

如何分析启动时内存中的内容? IE。重新启动时如何获取内存中的详细信息?

以下是使用 beta Heroku log-runtime-metrics 获得的内存消耗的详细信息:

heroku/beat.1:
source=beat.1 dyno=heroku.52346831.1ea92181-ab6d-461c-90fa-61fa8fef2c18
sample#memory_total=497.66MB
sample#memory_rss=443.91MB
sample#memory_cache=20.43MB
sample#memory_swap=33.33MB
sample#memory_pgpgin=282965pages
sample#memory_pgpgout=164606pages
sample#memory_quota=512.00MB 

【问题讨论】:

  • 你解决了吗?我也有类似的症状。

标签: django heroku memory rabbitmq celery


【解决方案1】:

我遇到了同样的问题。环顾四周,我关注了How many CPU cores has a heroku dyno?Celery immediately exceeds memory on Heroku

所以我输入了:

heroku run grep -c processor /proc/cpuinfo -a <app_name>

它返回了8。所以我在我的 Procfile 行中添加了--concurrency=4

worker: celery -A <app> worker -l info -O fair --without-gossip --without-mingle --without-heartbeat --concurrency=4

而且内存使用量似乎几乎被除以 2:

【讨论】:

    猜你喜欢
    • 2015-05-11
    • 1970-01-01
    • 2018-09-08
    • 2020-01-23
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    相关资源
    最近更新 更多