如果你是一个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中,有两个可用的交换空间的选项
- A 交换分区
- A 交换文件
交换分区
- 它是你硬盘的一部分,被保留为交换空间。
- 一旦配置好,就不容易改变。
- 在安装你的Linux发行版时创建。
交换文件
- 交换分区的替代文件
- 可以在安装后创建。
- 对一个文件而不是一个分区进行交换。
- 你可以随时修改交换文件的大小,很容易。
建议拥有的互换文件大小
你的系统上应该有的交换大小取决于你的系统上的RAM数量。
| 内存大小 | 交换文件大小 |
| < 1Gb | 2Gb |
| 2-4Gb | 2-4Gb |
| 8Gb | 4Gb |
| > 8 Gb | 2-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大小。最后,我想补充的是,在你的电脑上有一些交换空间是比较安全的。你可以使用交换分区或交换文件。
