我正在运行 Debian Squeeze 6.0.5。使用交换内存是否会使我的计算机运行速度变慢?如果是这样,在系统安装后如何减少交换内存的大小?
答案1
人们并不总是想减少它,但通常会增加其惰性使用量 - 交换中的干净页面越多越好,这意味着当需要空闲 RAM 时,可以轻松地将它们从 RAM 中删除。不过,Linux VM 在交换方面有一些奇怪的行为——密集型磁盘 I/O(例如大文件)cp
)可能会使您的系统大量进行不需要的交换。可以通过以下方式在一定程度上缓解减少 vm.swappinness
和增加 vfs_cache_pressure
尽管此类对策的效果并不总是达到预期。我觉得提一下也是有道理的交换这里——对于某些工作负载来说它可能很有用。
答案2
要暂时关闭交换,请使用(以 root 身份)命令:
swapoff -a
要将其重新打开:
swapon -a
要永久关闭它,请编辑该文件/etc/fstab
并注释掉类型列中带有 swap 的所有行。
更多的交换并不总能提高性能。有时减少它或关闭它会更好 - 这完全取决于应用程序的组合。
我快速谷歌了一下,找到了一篇关于这个主题的好文章:
https://www.linux.com/news/software/applications/8208-all-about-linux-swap-space
答案3
交换基本上有两个目的。它允许系统在物理内存耗尽时继续运行,但会带来性能成本 - 如果没有它,物理内存耗尽,您会在请求比实际内存更多的内存时发生崩溃、锁定和进程因内存不足错误而被终止。系统有。在这种情况下,性能下降是被迫将其用于活动进程的症状,而不是交换过多的症状。
它还可以通过将内存中较少使用的页面移动到磁盘直到再次需要它们来更有效地使用物理内存。这可以释放内存用于缓存目的,这通常比将不常用的程序内存段锁定在物理内存中更有效地利用空间。
长期以来的最佳实践是将交换空间大小设置为物理内存的两倍,换句话说,如果您有 1GB 内存,则将 2GB 用于交换。这仍然是一个很好的建议,但实际上,具有 4GB 或更多物理 RAM 的现代系统通常可以将其降至与系统物理内存相同的交换量。
使用交换时,您可以采取一些措施来提高性能。如果您有多个驱动器,建议将交换区移动到速度更快或使用率较低的硬盘驱动器,并且在 IO 密集型系统上,通过这样做可能会显着提高性能。对于传统硬盘驱动器,将交换区移至更靠近物理磁盘中心的位置可能会有所帮助,因为由于驱动器磁头的行程较少,中心的寻道时间通常较短。
对 SSD 进行交换也有很大帮助,但我要提醒您,这可能会对 SSD 造成大量磨损,并缩短其使用寿命。
当然,提高内存性能的最佳解决方案通常是在内存中投入更多 RAM,如果您查看内存使用情况,发现交换区使用量很大,而可用内存很少或没有,则表明是时候了投资更多的内存。
答案4
使用它确实如此,但在那里却不是。如果你同时运行太多占用内存的程序,会导致速度变慢,从而导致使用交换空间。
如果您确实想减少它,请启动 livecd 并启动gparted
并调整分区大小。