在Ubuntu 16.04上如何添加交换空间

这篇具有很好参考价值的文章主要介绍了在Ubuntu 16.04上如何添加交换空间。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

在增加服务器的响应速度并防止应用程序出现内存不足错误的最简单方法之一是添加一些交换空间。在本指南中,我们将介绍如何向 Ubuntu 16.04 服务器添加交换文件。

什么是交换空间?

交换空间是硬盘上被指定为操作系统可以临时存储无法再放入 RAM 中的数据的区域。基本上,这使您能够增加服务器可以保存在其工作“内存”中的信息量,但有一些注意事项。硬盘上的交换空间主要在 RAM 中不再有足够空间来容纳正在使用的应用程序数据时使用。

写入磁盘的信息速度将明显慢于保存在 RAM 中的信息,但操作系统会更倾向于将运行的应用程序数据保留在内存中,并使用交换空间来存储旧数据。总的来说,当系统的 RAM 耗尽时,拥有交换空间作为后备可以有效防止系统出现内存不足异常,尤其是在具有非 SSD 存储的系统上。

检查系统的交换信息

在开始之前,我们可以检查系统是否已经有一些可用的交换空间。系统可以有多个交换文件或交换分区,但通常一个就足够了。

我们可以通过输入以下命令来查看系统是否配置了任何交换空间:

sudo swapon --show

如果没有返回任何输出,这意味着您的系统当前没有可用的交换空间。

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

free -h
              total        used        free      shared  buff/cache   available
Mem:           488M         36M        104M        652K        348M        426M
Swap:            0B          0B          0B

如您在输出的“Swap”行中所见,系统上没有活动的交换空间。

检查硬盘分区上的可用空间

为交换分配空间的最常见方法是使用专门用于此任务的单独分区。但是,改变分区方案并非总是可能的。我们同样可以在现有分区上创建一个交换文件。

在执行此操作之前,我们应该通过输入以下命令来检查当前磁盘使用情况:

df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            238M     0  238M   0% /dev
tmpfs            49M  624K   49M   2% /run
/dev/vda1        20G  1.1G   18G   6% /
tmpfs           245M     0  245M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           245M     0  245M   0% /sys/fs/cgroup
tmpfs            49M     0   49M   0% /run/user/1001

在本例中,/dev 下的设备是我们的磁盘。在此示例中,我们有足够的可用空间(仅使用了 1.1G)。您的使用情况可能会有所不同。

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

创建交换文件

现在我们知道了可用的硬盘空间,我们可以开始在文件系统中创建一个交换文件。我们将在根目录(/)中创建一个名为 swapfile 的交换大小文件。

使用 fallocate 程序创建交换文件是最佳方式。此命令可以立即创建一个预分配大小的文件。

由于我们示例中的服务器具有 512MB 的 RAM,我们将在本指南中创建一个 1GB 的文件。请根据您自己服务器的需求进行调整:

sudo fallocate -l 1G /swapfile

我们可以通过输入以下命令来验证已保留正确数量的空间:

ls -lh /swapfile
-rw-r--r-- 1 root root 1.0G Apr 25 11:14 /swapfile

我们已经创建了具有正确空间大小的文件。

启用交换文件

现在我们已经有了正确大小的文件,我们需要将其转换为交换空间。

首先,我们需要锁定文件的权限,以便只有具有 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   -1

我们可以再次使用 free 实用程序的输出来证实我们的发现:

free -h
              total        used        free      shared  buff/cache   available
Mem:           488M         37M         96M        652K        354M        425M
Swap:          1.0G          0B        1.0G

我们成功设置了交换空间,操作系统将开始根据需要使用它。

使交换文件永久化

我们最近的更改已经为当前会话启用了交换文件。但是,如果我们重新启动,服务器将不会自动保留交换设置。我们可以通过将交换文件添加到我们的 /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

调整交换设置

有一些选项可以配置,这些选项将影响系统在处理交换时的性能。

调整 Swappiness 属性

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

当值接近零时,内核只有在绝对必要时才会将数据交换到磁盘。请记住,与 RAM 的交互“昂贵”,因为它所需的时间比与 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

在底部,您可以添加:

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

同样,这仅对当前会话有效。我们可以通过将其添加到配置文件中来更改:

sudo nano /etc/sysctl.conf

在底部,添加指定新值的行:

vm.vfs_cache_pressure=50

完成后保存并关闭文件。

结论

按照本指南中的步骤进行操作,可以在本应导致内存不足异常的情况下为您提供一些缓冲空间。交换空间在避免一些常见问题方面非常有用。

如果您遇到内存不足错误(OOM),或者发现系统无法使用您需要的应用程序,最佳解决方案是优化应用程序配置或升级服务器。文章来源地址https://www.toymoban.com/news/detail-846441.html

到了这里,关于在Ubuntu 16.04上如何添加交换空间的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何在 Ubuntu 16.04 上配置 NTP 以在 NTP Pool 项目中使用

    介绍 准确的时间记录对于几乎任何服务或软件都至关重要。电子邮件、日志记录器、事件系统和调度程序、用户认证机制以及在分布式平台上运行的服务都需要准确的时间戳来按时间顺序记录事件。这些服务使用网络时间协议(Network Time Protocol,NTP)将系统时钟与可信的外部

    2024年04月25日
    浏览(26)
  • ubuntu16.04搭建gitlab

    工作中遇到需要在远端服务器搭建gitlab,耗时4天,踩坑无数,特此开个虚拟机再次搭建一次gitlab并记录供以后参考! 背景:为保证服务器安全,远端服务器在内网,本地只能通过指定外网IP和端口去访问远端服务器 1.本地下载ubuntu16.04的gitlab包(2021-06-01)(ubuntu版本最好能和

    2023年04月09日
    浏览(29)
  • Ubuntu系统升级16.04升级18.04

      作为Linux发行版中的后起之秀,Ubuntu 在短短几年时间里便迅速成长为从Linux初学者到实验室用计算机/服务器都适合使用的发行版,目前官网最新版本是22.04。Ubuntu16.04是2016年4月发行的版本,于2019年4月停止更新维护。很多软件支持的Ubuntu最早版本也是18.04,所以考虑对现有

    2024年01月20日
    浏览(43)
  • QtAV for ubuntu16.04

    https://releases.ubuntu.com/16.04/ubuntu-16.04.7-desktop-amd64.iso https://ffmpeg.org/download.html ffmpeg-6.0.tar.xz https://github.com/wang-bin/QtAV/releases QtAV-1.12.0.zip sudo apt update sudo apt-get install libglu1-mesa-dev freeglut3-dev mesa-common-dev sudo apt-get install libavutil-dev libavcodec-dev libavformat-dev libswscale-dev sudo apt-get instal

    2024年02月14日
    浏览(30)
  • ubuntu 16.04 设置静态ip

    1.确认网卡的名字 2.编辑进入配置文件 按 i 进入编辑模式,并用下面内容替换原本内容, 按 esc 键,再按shift+: ,输入 wq,保存并退出 3.重启网络(有点慢) 4.查看设置是否成功 经过搜索找到了解决方法 将 managed=false 的 false 改成 true 是否能 ping 通百度

    2024年02月03日
    浏览(29)
  • Ubuntu安装腾讯会议——Ubuntu16.04/18.04/20.04/22.04

    通过以下教程可以快速的安装腾讯会议,本教程适用于Ubuntu16.04/18.04/20.04/22.04 进入腾讯会议下载官网下载腾讯会议Linux客户端 选择x86_64格式安装包下载 双击deb文件,点击install进行安装 安装成功,可以成功运行

    2024年02月12日
    浏览(59)
  • Ubuntu官方安装微信——Ubuntu16.04/18.04/20.04/22.04

    通过以下教程可以快速的安装官方版微信,本教程适用于Ubuntu16.04/18.04/20.04/22.04 进入微信下载官网下载微信Linux客户端 点击64位下载即可,如果不能下载,使用终端如下命令 双击deb文件,点击install进行安装 安装成功,可以在菜单中点击运行

    2024年02月08日
    浏览(36)
  • Ubuntu16.04安装中文输入法

    1、使用Ubuntu图像界面配置好中文环境,并将最下面的\\\"系统键盘输入法:\\\"选择为IBus 关于具体的配置看这篇文章https://mp.csdn.net/mp_blog/creation/editor/128273330 最终配置结果如下:   2、上面只是配置中文环境,但不能进行中文输入,需要使用命令安装ibus输入法。 sudo apt-get install ib

    2024年02月13日
    浏览(33)
  • ubuntu16.04下标定Astra相机

    1.安装相机驱动 2.下载camere_calibration 3.进行标定 打开终端,输入 打开另一个终端,输入

    2024年02月07日
    浏览(32)
  • Ubuntu 16.04——Hadoop集群安装配置

    hadoop 集群安装配置分为两个部分,一个部分是 主节点(Master) 和 从节点(Slave) ,两个部分需要完成的配置有一定的不同;总的来说,Master 所需要做的会比 Slave 会多一些。下面会演示两个部分需要做的事情;由于各台主机情况会有所不同,所以在报错的时候也会有一些的

    2024年02月02日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包