怎样设置Linux系统的Swap交换空间

2019-04-21 06:37:19 10968

Swap交换空间是每个人似乎都知道的事情之一,我也不例外。我认识的系统管理员朋友都有他们的自己的想法,大多数Linux发行版也提出了建议。

Swap交换空间的作用:

    Linux系统下的Swap交换空间与Windows下的虚拟内存意思差不多,Swap交换空间的作用可简单这样理解:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到 内存中。这样,系统总是在物理内存不够时,才进行swap交换。

许多年前,根据经验,应该分配的交换空间大小是计算机中安装的内存大小的两倍。当然,那是计算机内存以KB或MB为单位时的时候,所以如果一台计算机有64KB的内存,那么128KB的交换分区就是最合适的大小。

    这考虑到内存内存大小通常非常小的事实,并且为交换空间分配超过2倍的内存并没有提高性能。对于超过两倍内存的Swap,大多数系统花费的时间比执行有用的工作花费更多时间。

RAM内存已经变得相当便宜,许多计算机现在都有几十GB的内存。大多数新电脑都至少有4GB或8GB的内存,或者更多内存,比如32GB或者64GB。在处理具有大量内存的计算时,交换空间的限制性能因素远远低于2X乘积。因此,建议的交换空间被认为是系统内存工作负载的应变量,而不是系统内存。

表1提供了Fedora项目建议的交换分区大小,具体取决于系统中的内存大小以及是否需要足够的内存供系统休眠。要允许休眠,您需要在自定义分区阶段编辑交换空间。 “推荐”交换分区大小是在默认安装期间自动建立的,但我通常发现它要么太大,要么太小,无法满足我的需要。

Fedora 28安装指南定义了有关交换空间分配的当前思路。请注意,其他版本的Fedora和其他Linux发行版可能略有不同,但这与Red Hat Enterprise Linux用于其建议的表相同。这些建议自Fedora 19以来没有改变。

    image.png

表1:Fedora 28文档中推荐的系统交换空间。

表2时专业人员根据多年来在多种环境中的经验提供的建议。

    image.png

表2:专业人员推荐的系统交换空间

这两个表都可能不适合您的具体环境,但它们会给您一个参考的方向。主要考虑的是,随着内存数量的增加,那么这个时候应该让 Linux 不必太多的使用swap交换空间,这样可以最大限度的使用物理内存,减少硬盘的负载,同时加快速度。如果虚拟内存太少,则应添加更多的RAM(如果可能),而不是更多的交换空间。

为了测试Fedora(和RHEL)交换空间的建议,测试了下具有32GB和64GB RAM的两个系统,交换空间使用了0.5*RAM的建议。即使在运行四个或五个虚拟机,LibreOffice,Thunderbird,Chrome网络浏览器,多个终端会话,Xfe文件管理器以及许多其他后台应用程序中的多个文档时,唯一一次看到使用swap是在每天凌晨2点左右安排的备份期间。即使这样,swap使用量不超过16MB。当然并不一定适用于您的真实环境。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: