我无法清理 SWAP 内存。这导致我的 Linux 滞后。我尝试清理,但得到的输出是:你只是超级用户。
我使用 jupyter 笔记本学习卷积神经网络。在每个时期结束时,我的 SWAP 都在增加。
答案1
你试过把它关掉再打开吗?
看起来可能很有趣。您可以通过关闭并再次打开交换来强制清除交换:
sudo swapoff -a
sudo swapon -a
这会将所有交换分区标记为未使用交换(然后重新标记为已使用)。笔记这会强制将所有交换内存转换为物理内存 - 这意味着如果没有足够的物理内存,可能会发生一些不好的事情。
如果您正在使用交换,则可能会发生内存泄漏,正如其他人所建议的那样。
答案2
首先,您需要了解交换的工作原理 - 当程序需要的内存超过物理可用内存时,内核会将空闲程序占用的内存移至交换以清除当前活动程序的内存。
如果没有更多细节就很难说,但你的程序在每个时期结束时都需要更多的内存(不管这意味着什么)并且迫使内核使用交换,这是完全可以的。
不必费心清理交换区。即使交换区已被使用,它仍会显示正在使用中,并且此时交换区不会减慢任何速度。当它是使用后清理就没有意义了。
您有两个选择 - 关闭不使用的其他程序或安装更多物理内存。这样可以避免使用交换。
答案3
巴杜姆,你尝试过这样做吗?
sync; echo 1 > /proc/sys/vm/drop_caches
sync; echo 2 > /proc/sys/vm/drop_caches
sync; echo 3 > /proc/sys/vm/drop_caches
你可以找到解释这里。另外,我从同一个网站获得了命令。
答案4
drop_caches 通常仅在对文件系统和块设备、或网络附加存储或文件系统进行基准测试和时间测试时才有用。您不应该在任何实际生产系统中使用任何 drop_cache。它仅用于测试和调试。
PS 它不允许我评论所以我在这里写了