交换分区(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 值即可。
你的赞助是我的动力