我想在生产系统中登录Python脚本的当前内存使用情况。AWS有集装箱洞察,但是它们隐藏得非常好,我不知道如何在其他仪表板/日志记录和修改系统中正确地使用它们。另外,我不确定日志峰值内存是否存在。
Python脚本是生产系统。它运行在Docker容器中的AWS上,我遇到了以前的方法(链接)的问题。
[医]铁线似乎能够给我提供我想要的信息:
# At the start of the script
import tracemalloc
tracemalloc.start()
# script running...
# At the end
current, peak = tracemalloc.get_traced_memory()
logger.info(f"Current memory usage is {current / 10**6} MB")
logger.info(f"Peak memory usage was {peak / 10**6} MB")
tracemalloc.stop()然而,docs声明:
tracemalloc模块是一个调试工具。
那么,将其封装在生产代码中会不会是个坏主意呢?它的开销是多少?在生产中不使用它还有其他原因吗?
(我非常清楚代码的哪些部分需要最多的内存以及到达峰值内存的位置。我想监视这个部分(或者更确切地说,监控这几个对象/几行代码的大小)。替代tracemalloc的方法似乎是使用像这样)
发布于 2020-05-18 13:17:08
我一直在试图回答同样的问题。我找到的最好的答案是
https://www.mail-archive.com/python-list@python.org/msg443129.html
在一个简单的实验基础上,引用了3-4倍的因素,增加了tracemalloc的内存使用量。
https://stackoverflow.com/questions/61651641
复制相似问题