我该如何清除我的 SWAP?

我该如何清除我的 SWAP?

我无法清理 SWAP 内存。这导致我的 Linux 滞后。我尝试清理,但得到的输出是:你只是超级用户。

我使用 jupyter 笔记本学习卷积神经网络。在每个时期结束时,我的 SWAP 都在增加。

答案1

你试过把它关掉再打开吗?

看起来可能很有趣。您可以通过关闭并再次打开交换来强制清除交换:

sudo swapoff -a
sudo swapon -a

这会将所有交换分区标记为未使用交换(然后重新标记为已使用)。笔记这会强制将所有交换内存转换为物理内存 - 这意味着如果没有足够的物理内存,可能会发生一些不好的事情。

如果您正在使用交换,则可能会发生内存泄漏,正如其他人所建议的那样。

答案2

首先,您需要了解交换的工作原理 - 当程序需要的内存超过物理可用内存时,内核会将空闲程序占用的内存移至交换以清除当前活动程序的内存。

如果没有更多细节就很难说,但你的程序在每个时期结束时都需要更多的内存(不管这意味着什么)并且迫使内核使用交换,这是完全可以的。

不必费心清理交换区。即使交换区已被使用,它仍会显示正在使用中,并且此时交换区不会减慢任何速度。当它使用后清理就没有意义了。

您有两个选择 - 关闭不使用的其他程序或安装更多物理内存。这样可以避免使用交换。

答案3

巴杜姆,你尝试过这样做吗?

  1. sync; echo 1 > /proc/sys/vm/drop_caches

  2. sync; echo 2 > /proc/sys/vm/drop_caches

  3. sync; echo 3 > /proc/sys/vm/drop_caches

    你可以找到解释这里。另外,我从同一个网站获得了命令。

答案4

drop_caches 通常仅在对文件系统和块设备、或网络附加存储或文件系统进行基准测试和时间测试时才有用。您不应该在任何实际生产系统中使用任何 drop_cache。它仅用于测试和调试。

PS 它不允许我评论所以我在这里写了

相关内容