我有一个Django应用程序,该应用程序使用celery lib运行后台任务,我需要获取并存储任务的最大内存使用量。
我已经尝试了memory_profiler库中的memory_usage,但是由于出现错误:“不允许后台进程有子进程”,因此无法在任务中使用此函数。我还尝试了任务外部的memory_usage函数,以监视task.async调用,但是由于某种原因,该任务被触发了两次。
我发现的所有其他方法包括检查代码不同位置的内存使用量,然后获取最大值,但是我感觉这是非常不准确的,并且可能有些调用具有很高的内存在设法检查当前内存使用率之前,由于垃圾回收而被遗漏的使用率。
官方文档具有一些有用的功能,但必须依靠上述方法。 https://docs.celeryproject.org/en/latest/reference/celery.utils.debug.html
谢谢!