增加swap空间

来自艾毕思知识库
跳转至: 导航搜索

当操作系统需要更多的内存空间时,系统会要求增加swap空间,否则一些应用会失败,比如MySQL进程会在swap不足时结束。

在FreeBSD中有两种方式实现增加swap空间。

增加Swap文件

查看当前swap信息

# swapinfo

输出类似:

Device          1K-blocks     Used    Avail Capacity
/dev/da0p3        4194304    62924  4131380     2%

可根据当前的信息和系统实际可用磁盘空间规划需要增加的swap空间大小。

创建swap文件

# dd if=/dev/zero of=/usr/swap0 bs=1m count=128

在/usr目录创建一个名为swap0、大小为128MB的swap文件。

设置swap文件权限

# chmod 0600 /usr/swap0

swap文件必须配置为本权限。

修改系统配置信息

FreeBSD 10.x及更高版本

/etc/fstab文件中增加新swap文件信息

md99 none swap sw,file=/usr/swap0 0 0

其中md设备号“md99”为系统预留小序号,如果还需要增加更多的文件,可以在99上递增。

FreeBSD 9.x及更低版本

编辑/etc/rc.conf,增加

swapfile="/usr/swap0"

生效swap空间

现在已经完成增加swap空间,系统重启时会增加该文件到swap池中。

如果需要马上扩展swap空间而不重启系统,可以使用

FreeBSD 10.x及更高版本

# swapon -aq

FreeBSD 9.x及更低版本

# mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0

⚠ md0设备应为空闲md设备(内存磁盘)

增加Swap分区或硬盘

相对于上面的增加swap文件的方式扩大系统swap空间,增加新的swap分区或者时swap磁盘对系统的性能提高会有更好的效果。

假设系统中有一个可用分区ada1s1b,将该分区增加到swap空间:

# swapon /dev/ada1s1b

⚠ FreeBSD可以将任何当前没有mount(加载)的分区作为swap空间的扩展分区,如果使用了有业务数据的分区将破坏该分区上面原有的所有数据

如果需要将该分区在每次启动时自动加载,在/etc/fstab中加入:

/dev/ada1s1b none swap sw 0 0