【问题标题】:How can we profile memory usage of each Celery task?我们如何分析每个 Celery 任务的内存使用情况?
【发布时间】:2020-05-21 09:29:14
【问题描述】:

我使用 pytest 运行测试,然后运行几个 celery 任务。但是,当我使用

mprof run --include-children py.test test.py

我无法跟踪在 celery worker 中运行的每个 celery 任务消耗的内存。我只能看到 py.test 进程消耗了 50 MB 的 RAM(我可以在 mprof 图中看到),而 celery 工作人员消耗了大约 600-700 MB 的 RAM,这在 mprof 图中没有反映出来。如何绘制 py.test 触发的每个 Celery 任务的内存消耗?

P.S 我使用内存分析器包来分析 python 脚本的内存消耗。

【问题讨论】:

  • 我猜你会从你的 pytest 中生成一些 celery 任务,因此它们会通过 AMQP 并进入另一个进程空间?如果是这样,任务创建者(pytest)不会在任务消费者(芹菜)上提供内存配置文件

标签: python celery pytest memory-profiling


【解决方案1】:

【讨论】:

  • 即使您使用 multidprocess 标志,您也只能看到正在运行的不同子进程的图,但您看不到每个附加到 celery 的命名任务消耗了多少内存工人。
猜你喜欢
  • 2020-08-06
  • 2020-08-04
  • 1970-01-01
  • 2011-06-09
  • 2012-04-25
  • 1970-01-01
  • 2021-04-02
  • 1970-01-01
相关资源
最近更新 更多