下表根据系统中的 RAM 大小以及是否有足够的内存让系统休眠,提供了交换分区的推荐大小。建议的交换分区大小是在安装过程中自动建立的。但是,为了满足系统休眠,您需要在自定义分区阶段编辑交换空间。
表 1: Fedora 28 文档中推荐的系统交换空间
< 如显示不全,请左右滑动 >
系统内存大小推荐的交换空间推荐的交换空间大小(支持休眠模式)小于 2 GB 2 倍 RAM 3 倍 RAM
2 GB - 8 GB 等于 RAM 大小 2 倍 RAM
8 GB - 64 GB 0.5 倍 RAM 1.5 倍 RAM
大于 64 GB 工作量相关 不建议休眠模式
在上面列出的每个范围之间的边界(例如,具有 2GB、8GB 或 64GB 的系统 RAM),请根据所选交换空间和支持休眠功能请谨慎使用。如果你的系统资源允许,增加交换空间可能会带来更好的性能。
当然,大多数 Linux 管理员对多大的交换空间量有自己的想法。下面的表2 包含了基于我在多种环境中的个人经历所做出的建议。这些可能不适合你,但是和表 1 一样,它们可能对你有所帮助。
表 2: 作者推荐的系统交换空间
< 如显示不全,请左右滑动 >
RAM 大小推荐的交换空间≤ 2GB 2X RAM
2GB – 8GB = RAM
>8GB 8GB
这两个表中共同点,随着 RAM 数量的增加,超过某一点增加更多交换空间只会导致在交换空间几乎被全部使用之前就发生频繁交换。根据以上建议,则应尽可能添加更多 RAM,而不是增加更多交换空间。如类似影响系统性能的情况一样,请使用最适合你的建议。根据 Linux 环境中的条件进行测试和更改是需要时间和精力的。
向非 LVM 磁盘环境添加更多交换空间面对已安装 Linux 的主机并对交换空间的需求不断变化,有时有必要修改系统定义的交换空间的大小。此过程可用于需要增加交换空间大小的任何情况。它假设有足够的可用磁盘空间。此过程还假设磁盘分区为 “原始的” EXT4 和交换分区,而不是使用逻辑卷管理(LVM)。
基本步骤很简单:
关闭现有的交换空间。
创建所需大小的新交换分区。
重读分区表。
将分区配置为交换空间。
添加新分区到 /etc/fstab。
打开交换空间。
应该不需要重新启动机器。
为了安全起见,在关闭交换空间前,至少你应该确保没有应用程序在运行,也没有交换空间在使用。free 或 top 命令可以告诉你交换空间是否在使用中。为了更安全,您可以恢复到运行级别 1 或单用户模式。
使用关闭所有交换空间的命令关闭交换分区:
swapoff-a
现在查看硬盘上的现有分区。
fdisk-l
这将显示每个驱动器上的分区表。按编号标识当前的交换分区。
使用以下命令在交互模式下启动 fdisk:
fdisk/dev/<device name>
例如:
fdisk/dev/sda
此时,fdisk 是交互方式的,只在指定的磁盘驱动器上进行操作。
使用 fdisk 的 p 子命令验证磁盘上是否有足够的可用空间来创建新的交换分区。硬盘上的空间以 512 字节的块以及起始和结束柱面编号的形式显示,因此您可能需要做一些计算来确定分配分区之间和末尾的可用空间。
使用 n 子命令创建新的交换分区。fdisk 会问你开始柱面。默认情况下,它选择编号最低的可用柱面。如果你想改变这一点,输入开始柱面的编号。
fdisk 命令允许你以多种格式输入分区的大小,包括最后一个柱面号或字节、KB 或 MB 的大小。例如,键入 4000M ,这将在新分区上提供大约 4GB 的空间,然后按回车键。
使用 p 子命令来验证分区是否按照指定的方式创建的。请注意,除非使用结束柱面编号,否则分区可能与你指定的不完全相同。fdisk 命令只能在整个柱面上增量的分配磁盘空间,因此你的分区可能比你指定的稍小或稍大。如果分区不是您想要的,你可以删除它并重新创建它。