【问题标题】:Ram memory not freed after executing python script on ubuntu system在 ubuntu 系统上执行 python 脚本后没有释放 RAM 内存
【发布时间】:2025-12-24 15:40:16
【问题描述】:

enter image description here我有一个 125 Gb 内存的 Ubuntu 系统。我在那个系统上执行了几个 python 脚本。这些脚本使用 numpy 数组和 pandas。现在执行结束了,但仍然占用了 50 GB 的 RAM 和 2 Gb 的缓存以及 8.4 Gb 的交换空间。此时系统上没有任何东西在运行。我已经用谷歌搜索过了。大多数结果表明python垃圾收集器的性能很差。我希望清理并重新声明此内存。最简单的方法之一是重新启动系统,但我不想重新启动,我想要一种在系统启动并运行时执行此操作的方法。请告诉我如何做到这一点。 谢谢

【问题讨论】:

  • 如果执行结束并且python进程不再运行,那么它的所有内存都已经被释放了。 python 还在运行吗?
  • 我已附上图片供您参考
  • 好吧,使用了一些内存,但它没有说明哪个进程正在使用它 - 您可以打开终端并输入 tophtop 并查看哪些进程在囤积您的内存

标签: python linux memory garbage-collection ubuntu-18.04


【解决方案1】:

如果进程结束则应该释放内存,您可以通过运行诸如htop之类的实用程序来检查正在使用内存的进程。

当我遇到 python 的内存问题时,我经常关注

del memory_heavy_object_which_is_no_longer_needed

import gc
gc.collect()

【讨论】:

  • 现在如何释放内存。执行后
  • 如果 python 进程结束 - 应该释放内存,也许另一个进程正在使用它,或者,也许你不正确地测量内存使用 - 仔细检查。必要时重启机器。