Linux系统实现虚拟内存有两种方法:交换分区(swap分区)和交换文件
交换文件
- 查看内存:
free -m
, -m是显示单位为MB,-g单位GB - 创建一个文件:
touch /root/swapfile
- 使用
dd
命令,来创建大小为2G的文件swapfile:dd if=/dev/zero of=/root/swapfile bs=1M count=2048
//命令执行完需要等待一段时间
if表示input_file输入文件
of表示output_file输出文件
bs表示block_size块大小
count表示计数。
这里,我采用了数据块大小为1M,数据块数目为2048,这样分配的空间就是2G大小。 - 格式化交换文件:
mkswap /root/swapfile
- 启用交换文件:
swapon /root/swapfile
- 开机自动加载虚拟内存,在/etc/fstab文件中加入如下命令:
/root/swapfile swap swap defaults 0 0
- 重启后生效
reboot
如果要删除交换分区和交换文件,逆着上面的顺序操作:
- 先删除/etc/fstab文件中添加的交换文件行
- 停用交换文件
swapoff /root/swapfile
- 删除交换文件
rm -fr /root/swapfile
交换分区
采用交换分区的办法其实就是新建一个分区,然后将该分区挂载作为交换空间,方法步骤与传统的新建分区一样。只不过格式化分区和挂载分区分别采用mkswap和swapon命令。在创建分区之前,我们常常要用过fdisk -l和df -Th命令来查看硬盘信息和挂载信息,来确定分区的大小。
- 在shell下以root身份创建分区 hdb1
fdisk /dev/hdb1
然后 w 保存退出 - 设置交换分区,大小视情况自己设置。
mkswap /dev/hdb1
- 启用交换分区
swapon /dev/hdb1
- 开机自动加载虚拟内存,在/etc/fstab文件中加入如下命令:
/dev/hdb1 swap swap defaults 0 0