linux设置虚拟内存(交换空间)方法

场景

大多数场景下机器内存是够用的,然而运行某些低频软件的时候可能需要较高内存(如编译软件)。此时再增加较大的物理内存不划算,此时可以通过增加虚拟内存来达到临时增加内存的目的。

步骤

第一步:使用dd命令创建一个swap文件,大小为1G。

命令如下:

dd if=/dev/zero of=/home/swap bs=1024 count=1024000

bs为一次读写的大小,单位为字节。此处bs=1024表示一次读写的大小为1kb。

count为读写的次数,此处count为1024000,表示1024000次,乘以每次读取的1kb,正好是1024000kb,为1G大小。

第二步:将文件格式转换为swap格式

命令如下:

mkswap /home/swap

第三步:用swapon命令挂载该文件到swap分区

命令如下:

swapon /home/swap

都操作完毕之后可以使用free -m查看交换空间大小。

为防止重启后swap分区变成0,修改/etc/fstab文件,使得swap分区开机自动挂载。方法如下:

vi /etc/fstab

在文件末尾(最后一行)加上

/home/swap swap swap default 0 0

如果要删除交换分区和交换文件,逆着上面的顺序操作:

  1. 先删除/etc/fstab文件中添加的交换文件行
  2. 停用交换文件swapoff /root/swapfile
  3. 删除交换文件rm -fr /root/swapfile

虚拟内存原理

虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。目前,大多数操作系统都使用了虚拟内存,如Windows家族的“虚拟内存”;Linux的“交换空间”等。