许多人认为swap交换空间仅在物理ram内存已满时才会被使用。这种观点是错误的,因为linux内核会在内存中非活动页面移动到交换空间swap时使用它。
如需了解更多相关信息,请查阅我们的教程:Linux性能:为何你需要添加交换空间swap。
交换空间swap可以以专用交换分区或交换文件的形式创建。通常,在虚拟机上运行Ubuntu时,由于没有交换分区,唯一的选择是创建交换文件。
交换空间swap不应被视为物理内存的替代品。由于交换空间位于硬盘驱动器上,因此其访问速度比物理内存慢得多。
如果您的系统频繁出现内存不足的情况,应考虑增加物理内存RAM。交换空间的目的是提升系统性能,而非增加系统的总内存。
关于交换空间如何提升Linux系统性能的详细信息,请参阅我们的教程:Linux性能:为何你需要添加交换空间swap。
在本教程中,我们将创建一个大小为2 GB的交换空间文件。如果您需要更大的交换空间,请将2G替换为您所需的大小。
在Ubuntu 20.04中,有两种创建指定大小文件的方法,分别是使用fallocate和dd命令。您可以选择您喜欢的方式来创建交换空间文件。
fallocate和dd命令都能快速创建指定大小的文件,其中fallocate更为简洁易懂。具体选择取决于您的偏好。
如果您的系统中没有fallocate命令,或者您收到fallocate failed: Operation not supported的错误消息,您可以使用dd命令创建swap交换空间文件。以下是使用fallocate和dd命令在Ubuntu 20.04 Linux的根目录中创建大小为2G的交换空间文件swapfile的命令:
sudo fallocate -l 2G /swapfile sudo dd if=/dev/zero of=/swapfile bs=1024 count=2097152
默认情况下,交换空间文件的权限仅允许root用户读取和写入。因此,我们需要将交换空间文件的权限设置为600。
在Linux中,可以使用chmod命令修改文件权限。此外,还需要格式化交换空间文件。交换空间文件使用与普通文件系统不同的文件系统格式,并有专门的格式化工具mkswap。以下命令将交换空间文件的权限设置为600,并使用mkswap进行格式化:
sudo chmod 600 /swapfile sudo mkswap /swapfile
格式化完成后,您需要手动启用交换空间文件以使系统识别它。在Ubuntu 20.04 Linux中,可以使用swapon命令启用交换空间文件,它将自动挂载到系统中。运行以下swapon命令以启用交换空间:
sudo swapon /swapfile
swapon命令仅在当前会话中启用交换空间,重启后不会自动挂载。为了使交换空间在系统启动时自动挂载,您需要在/etc/fstab文件中定义挂载配置选项。
/etc/fstab文件存储着文件系统的静态挂载信息,用于定义磁盘分区、各种其他块设备或远程文件系统,告知Linux内核如何挂载这些设备文件。
以下命令使用echo、tee命令以及管道将行/swapfile swap swap defaults 0 0追加到/etc/fstab文件中:
echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab
在计算机重启时,交换空间将自动启用。您可以通过使用swapon或free命令来验证交换空间是否处于活动状态。
sudo swapon --show sudo free -h
Swappiness是Linux内核的一个属性,用于定义系统使用交换空间的频率。Swappiness的值在0到100之间。
当swappiness=0时,表示尽可能使用物理内存,然后才使用swap空间;当swappiness=100时,表示积极使用交换空间。
如果您不确定该值的大小,请参考我们的教程:Linux性能:为何你需要添加交换空间swap和空闲内存与可用内存的区别。
Linux的初始默认swappiness值为60,您可以使用cat /proc/sys/vm/swappiness命令查看当前的swappiness值。
如果需要更改swappiness的值,请运行sudo sysctl -w vm.swappiness=10命令。
sysctl命令用于在运行时配置Linux内核参数,更改仅在当前会话中有效,重启后会恢复为默认值。
为了使swappiness值持久化,您需要将值写入到/etc/sysctl.conf文件中。sysctl.conf是Linux内核的配置文件,在内核启动时会读取此文件中的参数。
运行以下命令以持久化Linux内核参数swappiness的值:
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
如果您因某些原因需要关闭并删除交换文件,您必须首先使用swapoff命令关闭交换空间。
如果您的交换空间文件配置了通过fstab自动挂载,您还需要从/etc/fstab文件中删除相应的自动挂载配置。
sudo swapoff -v /swapfile
接下来,使用您喜欢的编辑器打开/etc/fstab文件,并移除定义交换空间自动挂载的行。在本教程中,我们将使用vim命令打开文件。
sudo vim /etc/fstab
保存并退出后,最后一步是使用命令删除交换空间文件。您将使用rm命令删除文件:sudo rm /swapfile
总结:我们向您展示了如何在Ubuntu 20.04系统上创建、激活和配置交换文件。如果您遇到问题或有反馈,请在下方评论。
以上就是在Ubuntu 20.04上添加swap交换空间的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号