什么是Linux SWAP分区,它做什么?

大多数Linux安装建议您包括SWAP分区。对于习惯将整个操作系统都放在一个分区上的Windows用户而言,这似乎很奇怪。

那么SWAP分区有什么用,您甚至需要一个分区,它应该有多大?这些都是重要的问题,只要有正确的答案,就能严重改善系统的性能。

内存溢出

这听起来像是增加可用内存量的简便方法没有实际获得更多的RAM,但是事实并非如此。 RAM是理想的内存存储设备,因为它的运行速度非常快,而相对而言,硬盘驱动器则非常慢。固态驱动器的到来已经大大提高了速度,对性能的影响不大,但即使它们无法匹配RAM,而且,您也不想在固态驱动器上造成额外的磨损。

与SWAP分区最接近的类比是Windows的页面文件,尽管两者之间存在许多技术差异。

优先级排序

SWAP分区也可以提供帮助将某些项目从内存中移到硬盘驱动器,以便为更重要的项目留出更多空间。这意味着很少接触的项目将移至SWAP分区。

“稀有"的阈值取决于“灵活性"(是的,这是实际使用的术语),即是可配置的。较高的交换性意味着项目更有可能被移至SWAP分区;较低的可交换性意味着项目不太可能移动到SWAP分区。

启用休眠状态

最后,只要您告诉SWAP分区,它就会用作内存内容的目的地您的系统进入休眠状态。这意味着没有SWAP分区,Linux上的休眠是不可能的。

当然,对于用户来说,使用休眠功能实际上很少见,因此对您来说可能并不重要。

优点:

  • 当内存完全用完时提供溢出空间
  • 可以将很少需要的物品从您的手中移走高速内存
  • 允许您进入休眠状态
  • 缺点:

  • 由于SWAP分区不会动态调整大小,因此会占用硬盘驱动器上的空间
  • 可以增加硬盘的磨损
  • 不一定会提高性能(见下文)
  • 什么? SWAP分区并不总是有助于提高性能吗?让我解释一下这样的情况:拥有一个SWAP分区实际上比没有一个更糟糕。

    我在一台只有1GB内存和5400rpm硬盘的上网本上安装了Linux。只有1GB的内存,您可以想象它可以用几个打开的浏览器选项卡很快填满。 SWAP分区使我可以保持它们全部处于打开状态,因为内存溢出只是发生了。

    但是由于硬盘驱动器的5400rpm速度,出现了瓶颈。由于硬盘驱动器太慢,并且系统一直希望访问SWAP分区,因此上网本变得非常缓慢,以至于除非我关闭所有内容以释放一些内存,否则上网本几乎无法使用。

    设置的交换性不能保证即使内存中现在有空间,SWAP分区中的所有内容也将移回。取而代之的是,许多内容将保留在SWAP分区中,从而导致上网本继续呆滞。这只能通过重新启动来解决,无论如何都要花一些时间,因为系统必须在关闭前从SWAP分区中删除所有内容。

    建议

    所以,这就是我的建议:

  • 如果您希望能够休眠计算机,则应该有一个SWAP分区。此分区的大小应为已安装内存的大小,再加上10%到25%的空间,以便为已经移入SWAP分区的所有项目留出空间。
  • 如果只需要一个很小的空间,性能提升(并且至少有7200rpm的硬盘驱动器),然后可以根据需要添加SWAP分区,但是除非安装的内存少于4GB,否则不需要这样做。大小可以随心所欲,但是如果您要创建一个SWAP分区以启用休眠功能,则不会比它大。
  • 如果您有5400rpm的硬盘,那么您不应该仅仅因为瓶颈而使SWAP分区变得更糟。但是,如果您绝对希望使用SWAP,则仍可以使用上面概述的相同的大小调整准则来创建分区-但将swappiness值更改为更低的值。
  • 更改Swappiness

    您输入的值表示您何时希望Linux开始主动将进程从内存移动到SWAP分区。因此,例如,值为10表示在内存使用率达到90%时将移动进程; Ubuntu中的默认swappiness值为60,表示在内存使用率达到40%时将移动进程。

    还有很多其他细节,但这只会使事情更加混乱。

    结论

    SWAP分区可以对系统性能产生重大影响-有时会变得更好,有时会变得更糟。既然您已经受过良好的教育,那么您应该能够做出正确的决定。

    是否正在寻找其他方法来加速Linux系统?查看其他四个快速简便的技巧。

    您对SWAP分区有何了解?您认为它们值得使用吗?在评论中让我们知道!

    标签: