首页>>帮助中心>>美国云服务器Ubuntu 18.04上添加交换空间

美国云服务器Ubuntu 18.04上添加交换空间

2024/11/30 50次

美国云服务器Ubuntu 18.04上添加交换空间
第1步 - 检查系统的交换信息
在开始之前,我们可以检查系统是否已经有一些可用的交换空间。 可以有多个交换文件或交换分区,但通常一个就足够了。

我们可以通过键入以下内容来查看系统是否已配置任

sudo swapon --show
如果您没有收到任何输出,这意味着您的系统当前没有可用的交换空间。

您可以使用free实用程序验证没有活动交换:

free -h
total used free shared buff/cache available
Mem: 985M 84M 222M 680K 678M 721M
Swap: 0B 0B 0B
正如您在输出的Swap行中所看到的,系统上没有活动交换。

第2步 - 检查硬盘驱动器分区上的可用空间
在我们创建交换文件之前,我们将检查当前的磁盘使用情况,以确保我们有足够的空间。 通过输入:

df -h
Filesystem Size Used Avail Use% Mounted on
udev 481M 0 481M 0% /dev
tmpfs 99M 656K 98M 1% /run
/dev/vda1 25G 1.4G 23G 6% /
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 493M 0 493M 0% /sys/fs/cgroup
/dev/vda15 105M 3.4M 102M 4% /boot/efi
tmpfs 99M 0 99M 0% /run/user/1000
在这种情况下,带有/在Mounted on列上的设备是我们的磁盘。 在这个例子中我们有足够的空间(仅使用1.4G)。 您的用法可能会有所不同。

虽然对交换空间的适当大小有很多意见,但这实际上取决于您的个人偏好和您的应用程序要求。 通常,等于或加倍系统RAM的量是一个很好的起点。 另一个好的经验法则是,如果您只是将其用作RAM后备,那么任何超过4G的交换都可能是不必要的。

第3步 - 创建交换文件
现在我们知道了可用的硬盘空间,我们可以在文件系统上创建一个交换文件。 我们将在根(/)目录中分配一个我们想要的交换大小的文件,称为swapfile 。

创建交换文件的最佳方法是使用fallocate程序。 此命令立即创建指定大小的文件。

由于我们示例中的服务器具有1G的RAM,因此我们将在本指南中创建1G文件。 调整此项以满足您自己的服务器的需求:

sudo fallocate -l 1G /swapfile
我们可以通过输入以下内容来验证是否保留了正确的空间量:

ls -lh /swapfile
-rw-r--r-- 1 root root 1.0G Apr 25 11:14 /swapfile
我们的文件创建时留出了正确的空间。

第4步 - 启用交换文件
现在我们有一个正确大小的文件,我们需要实际将其转换为交换空间。

首先,我们需要锁定文件的权限,以便只有具有root权限的用户才能读取内容。 这可以防止普通用户访问该文件,这会产生重大的安全隐患。

通过键入以下内容使该文件只能由root访问:

sudo chmod 600 /swapfile
键入以下命令验证权限更改:

ls -lh /swapfile
-rw------- 1 root root 1.0G Apr 25 11:14 /swapfile
如您所见,只有root用户启用了读写标志。

我们现在可以通过输入以下内容将文件标记为交换空间

sudo mkswap /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf
标记文件后,我们可以启用交换文件,允许我们的系统开始使用它:

sudo swapon /swapfile
输入以下内容验证交换是否可用:

sudo swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 0B -2
我们可以再次检查free工具的输出以证实我们的发现:

free -h
total used free shared buff/cache available
Mem: 985M 84M 220M 680K 680M 722M
Swap: 1.0G 0B 1.0G
我们的交换已成功设置,我们的操作系统将在必要时开始使用它。

第5步 - 使交换文件永久化
我们最近的更改已启用当前会话的交换文件。 但是,如果我们重新启动,服务器将不会自动保留交换设置。 我们可以通过将交换文件添加到/etc/fstab文件来更改此设置。

备份/etc/fstab文件,以防出现任何问题:

sudo cp /etc/fstab /etc/fstab.bak
键入以下命令,将交换文件信息添加到/etc/fstab文件的末尾:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
接下来,我们将查看一些我们可以更新的设置以调整我们的交换空间。

第6步 - 调整您的交换设置
您可以配置一些选项,这些选项会在处理交换时对系统的性能产生影响。

调整Swappiness属性
swappiness参数配置系统将数据从RAM交换到交换空间的频率。 这是介于0和100之间的值,表示百分比。

值接近于零时,除非绝对必要,否则内核不会将数据交换到磁盘。 请记住,与交换文件的交互是“昂贵的”,因为它们比与RAM的交互花费更长的时间,并且它们可能导致性能的显着降低。 告诉系统不要太依赖交换通常会使您的系统更快。

接近100的值将尝试将更多数据放入交换中以努力保持更多RAM空间。 根据应用程序的内存配置文件或服务器的使用情况,在某些情况下可能会更好。

我们可以通过输入以下内容来查看当前的swappiness值:

cat /proc/sys/vm/swappiness
60
对于桌面,swappiness设置为60并不是一个糟糕的值。 对于服务器,您可能希望将其移近0。

我们可以使用sysctl命令将swappiness设置为不同的值。

例如,要将swappiness设置为10,我们可以键入:

sudo sysctl vm.swappiness=10
vm.swappiness = 10
此设置将持续到下次重新引导。 我们可以通过在/etc/sysctl.conf文件中添加该行来自动设置此值:

sudo nano /etc/sysctl.conf
在底部,您可以添加:

/etc/sysctl.conf中
vm.swappiness=10
完成后保存并关闭文件。

调整缓存压力设置
您可能想要修改的另一个相关值是vfs_cache_pressure 。 此设置配置系统将选择多少缓存inode和dentry信息而不是其他数据。

基本上,这是关于文件系统的访问数据。 这通常是非常昂贵的查询和非常频繁的请求,所以这是你的系统缓存的一个很好的事情。 您可以通过再次查询proc文件系统来查看当前值:

cat /proc/sys/vm/vfs_cache_pressure
100
由于它当前已配置,我们的系统会过快地从缓存中删除inode信息。 我们可以通过键入以下内容将其设置为更保守的设置(如50):

sudo sysctl vm.vfs_cache_pressure=50
vm.vfs_cache_pressure = 50
同样,这仅适用于我们当前的会话。 我们可以通过将其添加到配置文件来改变它,就像我们使用swappiness设置一样:

sudo nano /etc/sysctl.conf
在底部,添加指定新值的行:

/etc/sysctl.conf中
vm.vfs_cache_pressure=50
完成后保存并关闭文件。

购买使用一诺网络美国服务器,可以极大降低初创企业、中小企业以及个人开发者等用户群体的整体IT使用成本,无需亲自搭建基础设施、简化了运维和管理的日常工作量,使用户能够更专注于自身的业务发展和创新。美国服务器低至49元/月,购买链接:https://www.enuoidc.com/vpszq.html?typeid=3