Linux使用磁盘做内存并不是直接把磁盘改成内存,而是使用磁盘在 Linux系统中开辟一个类似于虚拟内存,但是在Linux中称为交换区( swap),现在安卓手机上提供的内存扩展功能大致原理也是类似。
使用场景:
云服务器配置最低 2G内存,在上面随便跑两个任务就吃满了,这个时候就可以考虑分配一部分磁盘作为内存使用,但它并不是可以完全作为内存使用,而是当物理内存使用完才会从物理内存中拿出一部分放到 交换区( swap)中,linux自己有个策略会把对应的资源放入到交换区中,它的读写速度会低于物理内存,所以使得在交换区运行的效率会比正常在物理内存中低。
创建交换区(swap)大致流程:
具体的操作:
首先需要获得 管理员权限,或者使用 管理员账户
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 00
例子:
/swap swap swap defaults 00
配置完信息后可以通过命令查看内存信息,-m表示以兆为单位显示free -m
删除对应分区:
1、停止对应分区
swapoff / 对应分区路径
swapoff /swap
2、删除 swap 分区文件
rm /对应分区文件路径
rm /swap
3、删除或者注释掉 /etc/fstab 文件中添加的自动启动信息,如果没有添加开机启动可以忽略
vim /etc/fstab
删除分区开机启动信息:/swap swap swap defaults 00