用户能够在任何 Linux 操作体系的装置过程中或者是其它必要的时分创立交流空间。假如你在装置 Linux 的时分忘记了创立或是你想要再添加交流分区的空间,你随时都能够再创立或添加。
有时分在你装置后摇晋级 RAM 的时分需求添加一点交流分区的空间,比方你要将你的体系的 RAM 从 1GB 晋级到 2GB 你,那么你就不得不将你的交流分区空间也晋级一下(从 2GB 到 4GB),这是由于它运用的容量是物理 RAM 的双倍容量。(LCTT 译注:其实这里是个误区,交流分区不一定非得是双倍的物理内存容量,仅仅常规如此。事实上,假如你的物理内存满足的话,你完全能够不必交流分区——在这里的景象下,或许你添加了物理内存,就没必要添加交流分区巨细了。)
交流空间是当物理内存(RAM 随机存取存储器)的用量已满时,被保存用作虚拟内存的磁盘上的空间。 假如体系在 RAM 满载时需求更多的内存资源,内存中的非活动页面将被移动到交流空间,这样能够协助体系运转应用程序更多的时刻,但不应该把它作为 RAM 的扩展。
主张你创立一个专用的交流分区,可是假如你没有可用的分区,那么能够运用交流文件,或交流分区和交流文件的组合。 交流空间一般主张用户至少 4 GB,用户也能够依据自己的要求和环境创立交流空间。
我发现大部分 VM 和 云服务器都没有交流分区,所以在这种情况下,咱们能够运用以下三种办法创立,扩展或添加交流空间。
怎么检测当时交流分区巨细
经过 free & swapon 指令来检测当时的交流分区空间的巨细。
$ free -htotal used free shared buff/cache availableMem: 2.0G 1.3G 139M 45M 483M 426MSwap: 2.0G 655M 1.4G$ swapon –showNAME TYPE SIZE USED PRIO/dev/sda5 partiTIon 2G 655.2M -1
上面的输出显现了当时的交流分区空间是 2GB 。
办法 1 : 经过 fallocate 指令创立交流文件
fallocate 程序是当即创立预分配巨细的文件的最佳办法。
下面这个指令会创立一个 1GB 巨细 的 /swapfile。
$ sudo fallocate -l 1G /swapfile
查看一下创立的文件的巨细是否正确。
$ ls -lh /swapfile-rw-r–r– 1 root root 1.0G Jun 7 09:49 /swapfile
将该文件的权限设置为 600 这样只要 root 用户能够拜访这个文件。
$ sudo chmod 600 /swapfile
经过运转以下的指令来将此文件转换为交流文件。
$ sudo mkswap /swapfileSetTIng up swapspace version 1, size = 1024 MiB (1073737728 bytes)no label, UUID=cda50e0e-41f3-49c7-af61-b8cb4a33a464
经过运转以下的指令来使交流文件收效。
$ sudo swapon /swapfile
将新创立的交流文件添加到 fstab 文件中,这样交流分区空间的修正即便在重启后也能够收效。
$ vi /etc/fstab/swapfile swap swap defaults 0 0
查看一下新创立的交流文件。
$ swapon –showNAME TYPE SIZE USED PRIO/dev/sda5 parTITIon 2G 657.8M -1/swapfile file 1024M 0B -2
现在我能够看到一个新的 1GB 的 /swapfile1 文件了。重启体系以使新的交流文件收效。
办法 2 : 经过 dd 指令来创立交流文件
dd 指令是另一个实用程序,能够协助咱们当即创立预分配巨细的文件。
以下 dd 指令将创立 1GB 的 /swapfile1。
$ sudo dd if=/dev/zero of=/swapfile1 bs=1G count=11+0 records in1+0 records out1073741824 bytes (1.1 GB, 1.0 GiB) copied, 16.6154 s, 64.6 MB/s
详解:
if=/dev/zero 是输入文件,/dev/zero 是类 Unix 操作体系中的一个特别文件,它供给从它读取的尽可能多的空字符(ASCII NUL,0x00)。
of=/swapfile1 设置输出文件。
bs=1G 一次性读写的巨细为 1GB
count=1 仅仿制一个输入块
查看一下创立的文件的巨细是否正确。
$ ls -lh /swapfile1-rw-r–r– 1 root root 1.0G Jun 7 09:58 /swapfile1
将该文件的权限设置为 600 这样只要 root 用户能够拜访这个文件。
$ sudo chmod 600 /swapfile1
经过运转以下的指令来将此文件转换为交流文件。
$ sudo mkswap /swapfile1Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)no label, UUID=96def6d7-b2da-4954-aa72-aa32316ec993
经过运转以下的指令来使交流文件收效。
$ sudo swapon /swapfile1
将新创立的交流文件添加到 fstab 文件中,这样交流分区空间的修正即便在重启后也能够收效。
$ vi /etc/fstab/swapfile1 swap swap defaults 0 0
查看新创立的交流文件。
$ swapon –showNAME TYPE SIZE USED PRIO/dev/sda5 partition 2G 1.3G -1/swapfile file 1024M 0B -2/swapfile1 file 1024M 0B -3
现在我能够看到一个新的 1GB 的 /swapfile1 了。重启体系以使新的交流文件收效。
办法 3 : 经过硬盘分区来创立交流文件
咱们也引荐运用经过硬盘分区的方法来创立交流分区。
假如你现已在你的另一个硬盘上经过 fdisk 指令创立了一个新的分区,假定咱们现已创立了一个叫做 /dev/sda4 的分区。
运用 mkswap 指令来将这个分区转换成交流分区。
$ sudo mkswap /dev/sda4
经过运转以下指令来使交流文件收效。
$ sudo swapon /dev/sda4
把新增的交流文件添加到 fstab 文件中,这样即便是重启了体系交流分区的修正也能收效。
$ vi /etc/fstab/dev/sda4 swap swap defaults 0 0查看新创立的交流文件。
$ swapon –showNAME TYPE SIZE USED PRIO/dev/sda5 partition 2G 1.3G -1/swapfile file 1024M 0B -2/swapfile1 file 1024M 0B -3/dev/sda4 partition 1G 0B -4
我能够看到新的交流分区 1GB 的 /dev/sda4。重启体系就能够运用新的交流分区了。