Ubuntu 中的内存和 SWAP

Ubuntu 中的内存和 SWAP

当我进入 Ubuntu 中的系统监视器时,大约 75% 的内存已被使用,45% 的交换已被使用。为什么即使内存可用,交换也会被使用?Linux 不会将数据从交换移动到内存吗?

答案1

将其移至内存。事实上,您可以完全禁用交换,或者设置“限制”。
这就是所谓的“交换性“。

信息:http://www.linuxvox.com/2009/10/what-is-the-linux-kernel-parameter-vm-swappiness/

如何检查:cat /proc/sys/vm/swappiness

sysctl -n vm.swappiness

如何设置该值:echo "10" > /proc/sys/vm/swappiness

你设置的 Swappiness 越大,内核交换的量就越大。因此,如果你只想在需要时使用交换,请将其设置为较低的值需要

(注意:设置限制时,您必须是 root 身份!)

答案2

当内存可用时,Linux 喜欢同时将数据保存在交换区和缓存区中。如果您在正确的地方查找,您会发现大多数(如果不是全部)“交换出”的数据也缓存在主内存中。

为何?空闲的 RAM 不会带来任何好处,但是,通过保持交换缓存,内核获得了很多灵活性:

  • 是否需要更多实际内存?好的,只需重新分配缓存块。它已经存储在交换中,因此需要先将其写入磁盘。

  • 是否需要换出的块? 好的,它已缓存在内存中,因此我们可以将缓存副本的状态从“缓存”更改为“活动”,并使交换副本无效,而无需触及磁盘。

答案3

如果数据从未被访问过并且可能永远不会被访问,系统为什么要将数据从交换移到内存呢?那将需要无意义的磁盘 I/O 并浪费物理内存。

相关内容