最近在安装一些软件的时候经常出现因为内存不足而崩溃的错误,故查看了Linux Swap分区的介绍,以及如何创建swap分区。内容转自下面两篇优质文章。谢谢这两位作者的整理与无私奉献。读者可直接点击链接了解。

Linux交换空间(swap space)详细介绍

如何在Ubuntu 16.04上增加Swap分区

通过学习上述两篇博客,将Swap分区增加到5G,在catkin_make VINS的时候顺利安装。如下图:

运行:

gnome-system-monitor

可以在安装软件过程中查看内存使用情况,可直观了解到是否是内存不足引起的问题。(我在安装VINS的时候物理内存加swap内存用到了9.5G,刚刚够。怎么这么耗内存!妈耶)


以下是第二篇博客内容。

最近想在Ubuntu上边装一个Windows虚拟机玩玩,可是苦于提示没有交换空间,然后怎么办捏,都怪我当时偷懒没有弄交换分区(Swap分区),不过不重要,还可以再弄嘛,下边开始创建Swap分区。

首先来了解一下什么是Swap

Swap分区(也称交换分区)是硬盘上的一个区域,被指定为操作系统可以临时存储数据的地方,这些数据不能再保存在RAM中。 基本上,这使您能够增加服务器在工作“内存”中保留的信息量,但有一些注意事项,主要是当RAM中没有足够的空间容纳正在使用的应用程序数据时,将使用硬盘驱动器上的交换空间。写入磁盘的信息将比保存在RAM中的信息慢得多,但是操作系统更愿意将应用程序数据保存在内存中,并使用交换旧数据。 总的来说,当系统的RAM耗尽时,将交换空间作为回落空间可能是一个很好的安全网,可防止非SSD存储系统出现内存不足的情况。

检查系统的交换信息

在开始之前,我们可以检查系统是否已经有一些可用的交换空间,可能有多个交换文件或交换分区,但通常应该是足够的。我们可以通过如下的命令来查看系统是否有交换分区:

sudo swapon --show

查看是否有交换分区

然后你会发现根本没有提示,那么就是没有交换空间咯,你也可以用free -h来查看一下:

free -h

查看是否有交换分区

然后下边写的0000,全是0哦,那么就没办法咯,就是没有呢。

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

为swap分配空间的最常见方式是使用专门用于具体某个任务的单独分, 但是,改变分区方案并不是一定可行的,我们只是可以轻松地创建驻留在现有分区上的交换文件。在开始之前,我们应该通过输入df -h来检查当前磁盘的使用情况:

df -h

查看磁盘使用情况

在这种情况下,/dev下的设备是我们的磁盘。在这个例子中我们有足够的空间(只使用了1.1G),当然,您的使用情况可能会有所不同。尽管对于交换空间的适当大小有许多意见,但这取决于您的个人偏好和应用程序要求。 一般来说,相当于系统内存量的两倍或者两倍以上是一个很好

的起点。 另一个很好的经验是,如果你只是把它用作RAM备用,那么swap分区的大小尽量不要超过4 GB。

创建Swap分区

现在我们知道了可用的硬盘空间,那我们就可以在文件系统中创建一个交换文件,我们将在我们的根(/)目录下创建一个名为swapfile的文件。创建交换文件最好的方法是使用fallocate命令,这个命令能立即创建一个预分配大小的文件。由于本示例中的服务器RAM的大小为8G,因此我们将在本教程中创建一个10GB大小的文件,并适当加以调整,以满足您自己的服务器的需求。

sudo fallocate -l 10G /swapfile

创建交换文件

创建完成之后,我们可以通过这个命令来验证是否保留了正确的交换空间:

ls -lh /swapfile

是否保留了正确的交换文件

这就说明我们的文件已经创建了正确的空间大小。

启用交换文件

现在我们有一个10 GB大小的文件,我们需要把它变成交换空间。首先,我们需要锁定文件的权限,以便只有拥有root权限的用户才能读取文件内容,这可以防止普通用户能够访问该文件,以免造成重大的安全隐患。锁定文件的root权限:

sudo chmod 600 /swapfile

锁定文件的root权限

查看下权限是否设置成功,一般都是没问题的:

ls -lh /swapfile

查看交换文件权限

接下来,我们可以通过以下命令将文件标记为交换空间:

sudo mkswap /swapfile

标记为交换空间

标记文件之后,我们可以启用该交换文件,让我们的系统开始使用它:

sudo swapon /swapfile

启用交换文件

可以通过以下命令验证交换空间是否可用:

sudo swapon --show

查看交换空间

这时,我们可以通过free再次查看我们的设置:

free -h

查看交换空间

可以看到swap分区已成功创建,大小为10.0 G,操作系统将在必要时使用。

永久保留交换文件

我们最近的更改启用了当前会话的swap文件,但是,如果我们重新启动,服务器不会自动保留swap设置,我们可以通过将swap文件添加到/etc/fstab文件中来改变这一点。备份/etc/fstab文件以防出错(提示:玩Linux因为只要权限够什么都能动,所以修改之前最好备份一下,以防止万一):

sudo cp /etc/fstab /etc/fstab.bak

备份fstab文件

将swap文件信息添加到/etc/fstab文件的末尾:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

添加交换文件信息

这样就保留了swap文件。

如何在Ubuntu 16.04上增加Swap分区相关推荐

  1. 详解如何在Ubuntu 16.04上增加Swap分区

    前言 提高服务器响应速度和防止应用程序内存不足错误的最简单方法之一是添加一些交换空间. 在本指南中,我们将介绍如何将交换文件添加到Ubuntu 16.04服务器. 但是,请注意: 尽管swap区通常建 ...

  2. 在Ubuntu 16.04上增加Swap分区

    查看当前目录大小 du -h --max-depth=1 ./ 查看特定目录下文件的大小 du -h --max-depth=1 /home/work/ 仅列出home目录下面所有的一级目录文件大小: ...

  3. 如何在Ubuntu 16.04上使用MySQL 5.6配置Galera集群

    原作者:梅丽莎安德森  转载翻译:https://www.digitalocean.com/community/tutorials/how-to-configure-a-galera-cluster- ...

  4. 如何在Ubuntu 16.04上创建多节点MySQL集群(MySQL-Cluster)

    翻译转载:https://www.digitalocean.com/community/tutorials/how-to-create-a-multi-node-mysql-cluster-on-ub ...

  5. 关闭防火墙linux 16.04,如何在Ubuntu 16.04上配置和设置防火墙

    在本文中,我们将学习–如何在Ubuntu 16.04上配置和设置UFW(防火墙),UFW代表"不复杂的防火墙",它充当IPTABLES的接口,从而简化了防火墙的配置过程,对于防火墙 ...

  6. 【转】如何在Ubuntu 16.04上使用UFW设置防火墙

    https://www.howtoing.com/how-to-set-up-a-firewall-with-ufw-on-ubuntu-16-04/ 如何在Ubuntu 16.04上使用UFW设置防 ...

  7. 如何在 ubuntu 16.04上运行jar文件

    如何在 ubuntu 16.04上运行jar文件 sudo apt-get update 1 安装依赖包 sudo apt-get install python-software-properties ...

  8. 如何在Ubuntu 16.04上使用ProxySQL缓存优化MySQL查询

    The author selected the Free Software Foundation to receive a donation as part of the Write for DOna ...

  9. 如何在Ubuntu 16.04上安装Swift和Vapor

    翻译自:How to Install Swift and Vapor on Ubuntu 16.04 介绍 Swift是Apple开发的一种编程语言,特点是快,安全和现代化,它有一个支持语言的庞大社区 ...

最新文章

  1. 上海世博会信息化的8大看点
  2. 「PKUWC2018」Minimax
  3. 如何实现在O(n)时间内排序,并且空间复杂度为O(1)
  4. jdbc mysql驱动_MySQL JDBC驱动程序如何处理准备好的语句
  5. python两列数据相关性_使用.corr获取两列之间的相关性
  6. Python – GitHub CentOS
  7. java数独求交集方法,标准数独解题之旅(用一道数独题讲解最基本的5种解题技巧)(二)...
  8. pom 备注_POM 500P的物性
  9. linux的dlan脚本,Linux DLNA
  10. Gephi简单导入数据
  11. JavaScript冒泡排序(升序排列)
  12. Vue中updated和watch的区别
  13. 淘宝告自媒体人冯东阳一事有结果了
  14. 对接mysql采集_关于西门子PLC设备数据采集与SQL数据库对接(带边缘计算)的案例...
  15. EOJ Contest61 2018研究生面试机考(软件工程)个人题解
  16. C++ 小帅真的饿了
  17. ipod video 乔布斯的三个故事
  18. ICSharpCode.SharpZipLib压缩解压
  19. 浙江大学计财处预约报销流程
  20. 【STM32H7的DSP教程】第32章 STM32H7的实数FFT的逆变换(支持单精度和双精度)

热门文章

  1. html一个图片链接四个,HTML图片怎么超链接
  2. angularjs 获取复选框的值_侠客行第二季来袭,教你如何快速获取侠名值_DNF游戏新闻 - 地下城与勇士 - DNF...
  3. 哔哩哔哩会员免费领取
  4. linux命令 kill 9,kill 9命令的理解与运用
  5. 本地生活团购小程序应该怎么做?
  6. AMO添加维度属性、层次结构
  7. 光遇挂_光遇:游戏CP关系多脆弱?玩家忘记回消息,CP已经失踪10天
  8. 长达半年的苹果发布会:亮点与槽点(iPhone5s,iPhone5c)
  9. 教你快速输入六角符号
  10. 音频处理开源代码整理