为 Linux 添加 swap 分区或修改 swap 分区容量

 Technique  comment

机器的物理内存不足则需要调用 swap 进行处理,若物理内存不足而没有 swap 则会 kill 进程,影响程序工作。

新建交换分区

一般在系统安装时有提供界面配置 swap 分区,但部分发型版或者定制模板中则去掉了此功能。因此需要自行建立 swap 分区。

常见 swap 分区有两种:

以分区方式创建需要使用磁盘工具进行重新分区,因此本文使用虚拟文件方式添加,这种方式更加灵活,无需修改磁盘分区信息,对于 swap 分区的大小也容易调整。

注意:若物理内存已经足够使用,则没有必要进行配置,但为以防内存不足导致服务被杀死,建议即使物理内存足够也配置少量的交换分区进行使用。且磁盘为固态硬盘时,可以相对加大交换分区容量,若磁盘的读写速度较慢则不建议配置交换分区。

查看当前内存状态

# free -h

提示:若没有交换分区再进行以下操作,若已经存在交换分区,请翻至修改交换分区容量。

创建虚拟交换分区文件

# dd if=/dev/zero of=/swapfile bs=1M count=1024

此命令会创建一个 1Gb 的虚拟交换分区文件,bs 为块大小,count 为制作次数。两者相乘为文件大小。

格式化虚拟文件

# mkswap /swapfile

启动交换分区

# swapon /swapfile

配置开机自动挂载

# vim /etc/fstab

添加以下一行

/swapfile swap swap defaults 0 0

修改交换分区容量

先停止全部的交换分区

# swapoff -a

注意:此操作会关闭交换分区,然后将分区内数据写入物理内存,因此请先确保物理内存有足够空间后进行操作。

然后删除之前的虚拟文件,接下来按照之前的教程添加即可。

附录

参考链接

回复