CentOS Swap 配置详解
一、Swap 简介
Swap,又称交换空间,是操作系统在物理内存不足时使用硬盘上的一部分空间来模拟扩展的内存,它通过将不常用的数据从内存移到磁盘上的 swap 空间,从而释放物理内存供当前活跃的程序使用,Swap 的使用虽然比物理内存慢,但能有效地防止系统因内存不足而崩溃或变慢。
二、检查系统的 Swap 信息
在配置 Swap 之前,首先需要检查系统当前的 Swap 使用情况,可以使用以下命令查看:
swapon s:列出系统中所有启用的 swap 设备。
free m:显示系统的整体内存使用情况,包括物理内存和 swap。
$ swapon s $ free m
如果系统未配置 Swap,swapon s
不会返回任何结果,且free m
命令中的 swap 总量将为 0。
三、创建 Swap 文件
1. 选择合适的大小
Swap 的大小设置为物理内存的两倍是一个不错的起点,对于 4GB 的物理内存,可以设置一个 8GB 的 Swap 文件。
2. 使用 fallocate 命令创建 Swap 文件
sudo fallocate l 4G /swapfile
此命令会在根目录下创建一个 4GB 的 swap 文件,如果根目录空间不足,可以选择其他有足够空间的位置。
3. 修改 Swap 文件权限
为了安全起见,应将 swap 文件的权限设置为只有 root 用户可读写:
sudo chmod 600 /swapfile
4. 将文件格式化为 Swap 并启用
sudo mkswap /swapfile sudo swapon /swapfile
5. 验证是否成功启用
再次使用swapon s
和free m
命令验证 swap 是否已成功启用。
四、使 Swap 永久生效
为了使 Swap 在系统重启后仍然有效,需要将其添加到/etc/fstab
文件中,编辑/etc/fstab
文件,添加如下内容:
/swapfile none swap sw 0 0
五、调整 Swappiness
Swappiness 参数控制了系统对 Swap 的使用频率,其取值范围为 0 到 100,数值越低,系统越倾向于避免使用 Swap;数值越高,系统更倾向于频繁使用 Swap,可以通过以下命令查看和修改 swappiness:
查看 swappiness:
cat /proc/sys/vm/swappiness
临时修改 swappiness(重启后失效):
sudo sysctl vm.swappiness=10
永久修改 swappiness(需要编辑/etc/sysctl.conf
文件):
echo "vm.swappiness = 10" | sudo tee a /etc/sysctl.conf
六、删除 Swap 分区
如果需要删除 Swap 分区,可以按照以下步骤操作:
1、关闭 Swap:
sudo swapoff /swapfile
2、删除 Swap 文件:
sudo rm /swapfile
3、移除 fstab 中的条目:
编辑/etc/fstab
文件,删除或注释掉与 Swap 相关的行。
七、FAQs
问题1:如何更改 Swap 文件的大小?
答:要更改 swap 文件的大小,首先需要删除原有 swap 文件,然后创建一个新的合适大小的 swap 文件,具体步骤如下:
1、关闭当前 swap:
sudo swapoff /swapfile
2、删除原有 swap 文件:
sudo rm /swapfile
3、创建新的 swap 文件:
sudo fallocate l 新大小 /swapfile
4、修改 swap 文件权限:
sudo chmod 600 /swapfile
5、将新 swap 文件格式化并启用:
sudo mkswap /swapfile sudo swapon /swapfile
6、确保新 swap 文件在重启后仍然有效,编辑/etc/fstab
,更新 swap 文件路径和大小。