linux使用磁盘做内存交换区

1,550 阅读2分钟

Linux使用磁盘做内存并不是直接把磁盘改成内存,而是使用磁盘在Linux系统中开辟一个类似于虚拟内存,但是在Linux中称为交换区(swap

使用场景:

云服务器配置最低2G内存,在上面随便跑两个任务就吃满了,这个时候就可以考虑分配一部分磁盘作为内存使用,但它并不是可以完全作为内存使用,而是当物理内存使用完才会从物理内存中拿出一部分放到 交换区(swap)中,它的读写速度会低于物理内存,所以使得在交换区运行的效率会比正常在物理内存中低。

创建交换区(swap)大致流程:

graph TD
添加交换区文件作为交换区的使用空间 --> 设置文件权限 --> 格式化交换区分区 --> 设置交换区分区 --> 开启,设置开机自动启动

具体的操作:

首先需要获得管理员权限,或者使用管理员账户

1、添加交换区空间

dd if=/dev/zero of=/ 交换区文件路径 bs=bytes 同时设置读/写缓冲区的字节数 count=设置交换区文件大小,如果bs值指定1024K,那么这里单位为兆M,一般来说物理内存小于等于2G设置为内存的两倍,2G-8G和内存大小一致,大于8G最少设置4G

创建1G交换区例子:
dd if=/dev/zero of=/swap bs=1024k count=1024

dd命令的作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

2、设置文件权限

chmod 600 /swap

3、格式化分区

mkswap /交换区文件路径
mkswap /swap

4、设置交换分区

mkswap -f /交换区文件路径
mkswap -f /swap

5、启动

swapon /swap

6、设置开机自动启动

编辑 vim /etc/fstab 文件
在文件最后添加 
/分区文件路径 swap swap defaults 0 0
例子:
/swap swap swap defaults 0 0

配置完信息后可以通过命令查看内存信息,-m表示以兆为单位显示 free -m

删除对应分区:

1、停止对应分区

swapoff / 对应分区路径
swapoff /swap

2、删除 swap 分区文件

rm /对应分区文件路径
rm /swap

3、删除或者注释掉 /etc/fstab 文件中添加的自动启动信息,如果没有添加开机启动可以忽略

vim /etc/fstab
删除分区开机启动信息:/swap swap swap defaults 0 0