gpt4 book ai didi

linux交换空间从不释放内存

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:33:58 25 4
gpt4 key购买 nike

我使用的是 Linux 内核 2.6.38,我正在运行一个分配 4GB 内存的进程,并且我有 4GB 的可用内存,所以当我运行我的应用程序时,它从交换空间中分配了大约 0.5GB。然而,我的应用程序运行了很长时间,并多次访问交换空间上的数据。

(已编辑)澄清我在做什么:

  • 我运行的是 Linux 2.6.38,内存为 4 GB。

  • 在不运行任何应用程序的情况下,系统占用大约 500MB 的内存。

  • 我创建了一个简单的应用程序,它分配 4GB 内存并在分配的内存中查找并多次更改该内存的值(10 次迭代循环)。

  • 很明显,我需要交换空间才能运行应用程序。

  • 当我运行我的应用程序时,交换空间不断积累并在几次迭代后变满,然后进程被终止。

  • 进程被终止后,交换空间仍然是满的。

  • 我在更新的内核上测试了我的应用程序,它工作正常,交换空间没有累积。

这是此内核版本 (2.6.38) 上的错误吗?有解决办法吗?

最佳答案

没有内存泄漏。

您假设当您的应用程序需要比可用内存更多的内存时,它的一部分被写入交换。这不一定是真的。

系统可能(并且通常会)编写其他完全不相关的进程进行交换,因为它们当前未被使用。

由于此交换空间不属于您的应用程序,因此在您的应用程序退出后它将继续使用。

这个交换空间可能会继续使用很长时间,因为 Linux 不会在有空闲 RAM 时抢先加载它们。

关于linux交换空间从不释放内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43443368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com