python - 内存泄漏调试 - 在 Heroku 上运行的 Python 脚本
问题描述
我正在运行一个通过简单的 Flask 应用程序调用的 python 脚本。我在 Heroku 上运行它。这是工作流程 - 在 Flask 应用程序中调用 URL 会使用 asyncio 触发 python 脚本(这是让 Flask 请求在触发脚本后正常返回所必需的。脚本继续执行几个小时
现在,当我检查 Heroku 上的日志时,内存不断增加。我在脚本中使用了 tracemalloc,发现内存使用量是平稳的。但是当我监控 Heroku 日志时,内存不断增加。
这是 Tracemalloc 显示的内容。下面是消耗内存的组件。这是 16 MB,并且不会超出此范围
最高内存使用量:/app/.heroku/python/lib/python3.8/site-packages/googleapiclient/schema.py:302: size=16.3 MiB, count=241, average=69.3 KiB
但这是 Heroku 日志的内存消耗
ource=web.1 dyno=heroku.213294961.fb70dc87-b41e-4201-8ae4-30afe715a932 sample#memory_total=349.32MB sample#memory_rss=347.13MB sample#memory_cache=2.18MB sample#memory_swap=0.00MB sample#memory_pgpgin=195178pages sample #memory_pgpgout=108308 页样本#memory_quota=512.00MB
这已从 200 MB 增加到 350 MB(2 小时内增加 150MB)
调试此问题的最佳方法是什么?任何指示都会有所帮助
解决方案
推荐阅读
- nativescript - 调整 Xcode 设置后,如何在 NS Preview 中使用“UITabBarControllerImpl”解决 CONSOLE WARN?
- elasticsearch - 有没有一种方法可以选择 n 个存储桶,并应用存储桶的 doc_count 的范围过滤器以“即时”跳过存储桶
- javascript - 如何在继续使用 Angular 之前等待来自服务的新数据
- python - TypeError: Object type
cannot be passed to C code using pycryptodome - express - 在 iframe 中表达不同的会话 ID
- selenium-webdriver - 通过 selenium 使用循环编写 excel 文件
- reactjs - 印度手机号码、电子邮件 ID 和密码的正则表达式:React Js || 下一个 Js
- reactjs - 找不到“bson”的类型定义文件。该文件在程序中,因为:隐式类型库“bson”的入口点
- javascript - 为什么图像不跟随 mousemove
- list - 可以将单个列表组合在一个文件夹中以节省空间吗?