了解Linux中的交换空间的实用指南

143 阅读4分钟

如果你是一个Linux用户,那么你肯定听说过Linux Swap。但你来这里的原因可能是,你可能不知道它到底是什么,也不知道如何使用它。在这篇博客中,我将介绍交换空间的概念和它的一些实际实现。那么,让我们开始吧。

什么是互换空间?

你可能知道,Linux的交换空间与RAM(随机存取存储器)有某种联系。交换空间也会影响你的系统性能。如何影响?我们将回答上面提到的两点。

如果我们谈论存储结构,RAM位于顶部的第三个位置,排在寄存器和高速缓冲存储器之后。在这个层次中,最上面的那个总是提供最好的IOPS(每秒输入输出),但它的数据存储容量是最低的。换句话说,IOPS和存储容量是成反比的。

Linux内核通常使用你的RAM内存来存储临时信息。由于RAM位于层次结构的第三层,它的IOPS很高,但与存储层次结构中的其他存储机制相比,它的存储容量很低,这有时会使我们的RAM空间非常小或没有可用空间,这可能会进一步导致应用程序或系统崩溃。那么解决方案是什么呢?

在这种情况下,当没有足够的RAM空间可用时,Linux内核会从RAM中提取一些信息并将其写入硬盘上的交换空间。这个过程被称为交换过程。这样,你的Linux系统可以释放一些RAM空间,不会因为内存不足而崩溃。

简而言之,交换内存扩展了RAM,因为它在RAM空间用完时提供了一些额外的内存。

我需要Linux Swap吗?

作为一个初学者,你可能会问自己是否需要交换空间这个问题。这个问题的答案取决于你的使用情况和你的系统的RAM。

然而,即使你有大量的内存,交换空间也是可取的,因为否则,每当你的系统的内存满了,就会有很大的机会让系统崩溃。另一方面,如果你有交换空间,内核将从RAM中写入一些信息到交换内存中,你的系统将继续工作,尽管速度会慢一点。

正如我们所知,没有什么是免费的,所以很明显,如果你更多地依赖交换空间,它将使你的系统比RAM慢得多。

互换选项

在Linux中,有两个可用的交换空间的选项

  1. A 交换分区
  2. A 交换文件

交换分区

  • 它是你硬盘的一部分,被保留为交换空间。
  • 一旦配置好,就不容易改变。
  • 在安装你的Linux发行版时创建。

交换文件

  • 交换分区的替代文件
  • 可以在安装后创建。
  • 对一个文件而不是一个分区进行交换。
  • 你可以随时修改交换文件的大小,很容易。

建议拥有的互换文件大小

你的系统上应该有的交换大小取决于你的系统上的RAM数量。

内存大小交换文件大小
< 1Gb2Gb
2-4Gb2-4Gb
8Gb4Gb
> 8 Gb2-4Gb

你可以参考上面的表格,但还是那句话,一切都取决于你的使用情况。

如何检查我的 Swap 空间大小

## Check swap size
free -h

## Check swap partition size, swap type with mount point
swapon

如何创建一个Swap文件

NOTE: To understand what a command does in more details, try any of the below options:
whatis <cmd>
<cmd> --help

## Pre Allocate a space to a file 
sudo fallocate -l 1G /swapfile

## Change permissions of the file to user read & write.
sudo chmod 600 /swapfile

## Setup a Linux swap area
sudo mkswap /swapfile

## Enable the swap
sudo swapon /swapfile

NOTE: This won't persist the swap you have created. To make these changes permanent, run the following
## Edit "/etc/fstab" by adding the following at last
/swapfile swap swap defaults 0 0 

## Verify the swap
free -h

如何删除或编辑一个Swap文件

### REMOVE the swap file

## Deactivate the swap file. "-v" is for verbose mode
sudo swapoff -v /swapfile

## Delete the swap file
sudo rm /swapfile

## Remove the entry in "/etc/fstab"
## Edit "/etc/fstab" by removing the following
/swapfile swap swap defaults 0 0 

### EDIT SIZE of the swap file

## Run the REMOVE steps first
## Afterwards, run the CREATE steps with new size 

结论

读完这篇博客后,你现在能够理解什么是Linux中的Swap,以及如何通过修改swap文件的大小来定制你的swap大小。最后,我想补充的是,在你的电脑上有一些交换空间是比较安全的。你可以使用交换分区或交换文件。