一、用途
一般情况下,部署操作系统时,会设置交换分区,以供操作系统进行内存调度。但是一些情况下,比如物理内存不足时,会频繁导致操作系统对进程进行 oom-kill 。
此时,可以通过设置合适大小的交换文件,对交换分区进行动态扩充,以避免频繁的OOM。
二、操作
下属内容,将逐步创建并启用一个swap文件。
2.1 创建swap文件
使用 dd
命令创建文件:
dd if=/dev/zero of=/swapfile1 bs=1024 count=524288
创建 /swapfile1 ,大小为 512M。 计算方式是:blocksize count,即 1024 524288
也可以使用 fallocate
命令创建交换文件:
fallocate -l 512M /swapfile1
看起来更直观一些。
2.2 调整文件权限
swap文件,仅给root用户读写权限就行:
chown root:root /swapfile1
chmod 0600 /swapfile1
2.3 格式化文件
需要使用 mkswap
命令将文件格式化为swap格式。才能被加载为swap。
mkswap /swapfile1
2.4 启用swap文件
swapon /swapfile1
执行之后,swap文件就已经被加载,可以正常工作了。可以使用 htop
等命令,看到swap分区的大小已经是原先的swap分区加上这个swap文件的尺寸了。
2.5 开机自动挂载
与其他的文件系统分区一样,swap文件也需要在 /etc/fstab
文件内填写挂载配置:
/swapfile1 none swap sw 0 0
分区类型就是swap。
2.6 卸载swap文件
使用 swapoff
命令即可
swapoff /swapfile1
三、隐患
使用swap是一种不得已而为之的方法,由于硬盘的速度远远小于物理内存,所以在大量使用swap的情况下,系统的运行速度会大大降低。所以swap还是要酌情使用,扩充物理内存在是正法。