交换分区(swap概念)

什么是Linux交换(swap)

图片

Linux内核将RAM分成内存块和交换(Swap)进程,交换(Swap)进程是当Linux内核使用硬盘空间(交换空间)来存储RAM中的信息,从而释放一些RAM空间。这就是为什么在安装Linux发行版时,安装向导通常会提示为系统分配一些空间以及给交换(Swap)分配另一个空间。使用交换(Swap)是扩展 RAM 的一种非常有用的方法,因为它在 RAM 空间耗尽且必须继续进程时提供必要的额外内存。当安装Linux的内存小于1Gb 时,特别建议这样做。虽然最后,一切都取决于你。

1,到底需不需要Swap

这个问题对于许多新手用户在开始安装Linux时会问自己的一个问题。实际上,这将取决于计算机的内存的使用情况和数量。关于使用,有些进程和应用程序确实会占用大量内存,例如Google的Chrome。但是,大多数当前设备都配备了至少8Gb的内存,这使得交换变得不那么必要。但是,即使您有很多RAM,也希望拥有交换空间。

例如,通常当您的RAM已满并且Linux内核没有空间写入时,您的系统将崩溃。另一方面,如果您有一个交换空间,它将被Linux内核使用,您的系统将继续工作,尽管速度要慢得多。因此,拥有交换(Swap)空间更安全。

注意:交换空间有一个缺点就是它比RAM慢得多。因此,添加交换空间不会使您的计算机更快,它只会有助于克服RAM大小带来的一些限制。

2,交换(Swap)分区

一般建议在安装 Linux的时候就创建交换分区。通常,下面这些是交换分区的大小。这只是建议具体还得根据实际环境来配置。

1,如果计算机具有1Gb的内存或更少的内存,则交换分区的大小应为内存大小的两倍。
2,如果计算机的内存在2GB到4GB之间,则交换分区的大小应该是内存的一半。
3,如果计算机的内存超过4GB,那么拥有2Gb就足够了。

下面可以通过以下命令来检查交换分区的大小以及类型。

[root@sharplee ~]#swapon

图片

从上图可以看出交换分区的大小是2GB。

3,交换(Swap)文件

或者也可以在Linux安装后创建一个Linux交换文件。现代 Linux 内核允许交换到交换文件而不是交换分区。交换文件比交换分区具有优势,可以随时通过更改交换文件大小来轻松更改交换的大小。可以通过以下命令来创建交换文件。

[root@sharplee ~]# sudo fallocate -l 1G /swapfile

通过上面命令创建了一个1GB的交换文件,如果想要创建其它大小的交换文件,直接把1G替换成对应的大小即可。

接下来给swapfile授予权限。

[root@sharplee ~]#sudo chmod 600 /swapfile

接着格式化交换空间文件。

[root@sharplee ~]#sudo mkswap /swapfile

图片

 最后,通过以下命令来开启交换文件。

[root@sharplee ~]#sudo swapon /swapfile
or
[root@sharplee ~]#vi /etc/fstab

图片

 保存完成之后,重启。通过以下命令来检查是否生效。

[root@sharplee ~]#sudo free -h

4,如何移除交换(Swap)文件

如何移除交换文件,可以通过以下命令来移除交换Swap文件。

[root@sharplee ~]# sudo swapoff -v /swapfile

或者通过以下命令删除/etc/fstab中的新增的交换文件。接着删除/swapfile.

5,如何调整Swappiness值

Swappiness是 Linux 内核的一个属性,用于定义交换空间的使用频率。如您所知,RAM 比硬盘驱动器快。因此,每次您需要使用交换时,您都会注意到某些进程和应用程序运行速度会变慢。但是,您可以调整系统以使用比交换更多的 RAM。这有助于提高整体系统性能。

通常,默认的 swappiness 值为60。此值越小,将使用的 RAM 越多。

要验证 swappiness 值,请运行以下命令:

[root@sharplee ~]# cat /proc/sys/vm/swappiness

图片

如果想要修改swappiness的值,可以编辑/etc/sysctl.conf文件。并添加以下以下内容。

vm.swappiness=10

图片

为了应用更改,则需要重新启动系统。这样Linux内核将使用更多的RAM和更少的交换,但是当你的RAM内存严重满时它仍然会交换。通常,当您的RAM超过4Gb时,建议使用此设置。

总结:一般计算机上拥有一些交换空间会更安全。您可以使用交换分区或交换文件。后者变得越来越普遍。Linux 交换是一个技术概念,但了解它的工作原理可以提高系统的性能。只需使用 swappiness 值即可。

大乐学IT
资料分享,知识分享,资源共享,大家需要啥资源可以回复,小主为大家寻找。构建一个资源共享公众号
90篇原创内容

 

sharplee

你的赞助是我的动力

收录于合集 #linux
 66
上一篇Linux如何清除历史命令下一篇Linux中什么是/dev/null?
阅读 1795
大乐学IT
90篇原创内容
 
写下你的留言
 
 
 
posted @ 2022-10-19 13:52  往事已成昨天  阅读(813)  评论(0编辑  收藏  举报