轻聆月下
轻聆月下
发布于 2024-03-24 / 5 阅读
0
0

Linux设置交换文件swapfile

一、用途

一般情况下,部署操作系统时,会设置交换分区,以供操作系统进行内存调度。但是一些情况下,比如物理内存不足时,会频繁导致操作系统对进程进行 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还是要酌情使用,扩充物理内存在是正法。


评论