python-asyncio - 具有内存泄漏的异步 (Python)

标签 python-asyncio python-3.9

我的(dockerized)应用程序有一个问题,它消耗的内存量不断增加,直到 Linux 内核终止为止。在容器的docker logs我只得到了一个不祥的Killed没有进一步上下文的消息 - 仅在检查内核日志 ( cat /var/log/kern.log ) 和 docker stats 之后我是否意识到发生了什么 - 内存使用量每秒增加约 10MB。

该应用程序是异步的 grpc - 具有多个并发任务的服务器(使用 return ensure_future(self._continuous_function) 保持函数任务的启动和运行,异步,因此服务器端点不会被阻止)。

最佳答案

我发现 ensure_future() 导致了我的内存泄漏问题 - 或者更确切地说是我使用它的 return 。显然,返回意味着对原始任务的引用被保存在内存中(而不是被垃圾收集),并且该函数只有一个非常短的与之相关的等待时间(1毫秒) - 因此内存不断快速积累。 p>

因此,在消除泄漏后,我的应用程序现在消耗了大约 60MB 的非常稳定的内存。我希望这对其他人有帮助,我找不到这个确切问题的引用资料,这就是我在这里分享它的原因。

关于python-asyncio - 具有内存泄漏的异步 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69521780/

相关文章:

python - 如何让 uvicorn 运行异步构建的应用程序?

python - 通过 SFTP 将一个文件并行复制到多个远程主机

python - 如何在 pycharms 交互式调试器中评估协程

django - 如何在 ubuntu aws 上使用 python3.9 安装 django

python - 我正在使用 python 3.9,但不知道如何在 Windows 10 中安装 pyaudio

python - 日志记录在 python 3.9.4 中似乎无法正常工作

python - 通过超时取消异步迭代器

python - 在自己的线程中运行事件循环

aws-lambda - AWS Lambda 在运行 Terraform Plan 时没有 Python3.9 运行时上下文?

python - collections.abc.Callable 在 Python 3.9.1 中是否被窃听?