Linux系统实现虚拟内存有两种方法:交换分区(swap分区)和交换文件,
一、交换文件
- 查看内存:
free -m
, -m是显示单位为MB,-g单位GBfree -g
- 创建一个文件:touch命令用于修改文件或者目录的时间属性,包括访问时间和修改时间,若文件不存在,系统会建立一个新的文件。我们平时用得最多的是通过touch创建一个空文件,实际上通过touch命令可以修改文件的atime、mtime,所以文件的真实访问时间和修改时间是可以被修改
touch /etc/swapfile
- 使用
dd
命令,来创建大小为2G的文件swapfile(注意文件路径):dd if=/dev/zero of=/etc/swapfile bs=1M count=2048
//命令执行完需要等待一段时间
if表示input_file输入文件
of表示output_file输出文件
bs表示block_size块大小
count表示计数。
这里,我采用了数据块大小为1M,数据块数目为2048,这样分配的空间就是2G大小。dd if=/dev/zero of=/etc/swapfile bs=1M count=2048
- 格式化交换文件:
mkswap /etc/swapfile
- 启用交换文件:
swapon /etc/swapfile
- 加载到虚拟内存:/etc/swapfile swap swap defaults 0 0
注意:swapfile文件的路径/etc/swapfile swap swap defaults 0 0
- 查看虚拟内存情况:swap 分配和使用情况
free -g
- 开机自动加载虚拟内存,在/etc/fstab文件中加入如下命令 :
/etc/swapfile swap swap defaults 0 0
/dev/mapper/ol-vg_system / xfs defaults 0 0 UUID=acc629c6-f540-4c80-8066-bbb0b76f05e2 /boot xfs defaults 0 0 /dev/mapper/ol-lv_swap swap swap defaults 0 0 /dev/data_vg/data_lv /data xfs defaults 0 0
- 重启系统:reboot
如果要删除交换分区和交换文件,逆着上面的顺序操作:
- 先删除/etc/fstab文件中添加的交换文件行
- 停用交换文件
swapoff /etc/swapfile
- 删除交换文件
rm -fr /etc/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