文档章节

Linux 上交换分区的简单操作

问题终结者
 问题终结者
发布于 2017/09/10 22:07
字数 1526
阅读 5
收藏 0
点赞 0
评论 0
导读 用户可以在任何 Linux 操作系统的安装过程中或者是其它必要的时候创建交换空间。如果你在安装 Linux 的时候忘记了创建或是你想要再增加交换分区的空间,你随时都可以再创建或增加。

有时候在你安装后摇升级 RAM 的时候需要增加一点交换分区的空间,比如你要将你的系统的 RAM 从 1GB 升级到 2GB 你,那么你就不得不将你的交换分区空间也升级一下(从 2GB 到 4GB),这是因为它使用的容量是物理 RAM 的双倍容量。(LCTT 译注:其实这里是个误区,交换分区不一定非得是双倍的物理内存容量,只是惯例如此。事实上,如果你的物理内存足够的话,你完全可以不用交换分区——在这里的情形下,或许你增加了物理内存,就没必要增加交换分区大小了。)

交换空间是当物理内存(RAM 随机存取存储器)的用量已满时,被保留用作虚拟内存的磁盘上的空间。 如果系统在 RAM 满载时需要更多的内存资源,内存中的非活动页面将被移动到交换空间,这样可以帮助系统运行应用程序更多的时间,但不应该把它当做 RAM 的扩展。

建议你创建一个专用的交换分区,但是如果你没有可用的分区,那么可以使用交换文件,或交换分区和交换文件的组合。 交换空间通常建议用户至少 4 GB,用户也可以根据自己的要求和环境创建交换空间。

我发现大部分 VM 和 云服务器都没有交换分区,所以在这种情况下,我们可以使用以下三种方法创建,扩展或增加交换空间。

如何检测当前交换分区大小

通过 free & swapon 命令来检测当前的交换分区空间的大小。

$ free -h

total used free shared buff/cache available

Mem: 2.0G 1.3G 139M 45M 483M 426M

Swap: 2.0G 655M 1.4G

$ swapon --show

NAME TYPE SIZE USED PRIO

/dev/sda5 partition 2G 655.2M -1

上面的输出显示了当前的交换分区空间是 2GB 。

方法 1 : 通过 fallocate 命令创建交换文件

fallocate 程序是立即创建预分配大小的文件的最佳方法。

下面这个命令会创建一个 1GB 大小 的 /swapfile。

$ sudo fallocate -l 1G /swapfile

检查一下创建的文件的大小是否正确。

$ ls -lh /swapfile

-rw-r--r-- 1 root root 1.0G Jun 7 09:49 /swapfile

将该文件的权限设置为 600 这样只有 root 用户可以访问这个文件。

$ sudo chmod 600 /swapfile

通过运行以下的命令来将此文件转换为交换文件。

$ sudo mkswap /swapfile

Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)

no label, UUID=cda50e0e-41f3-49c7-af61-b8cb4a33a464

通过运行以下的命令来使交换文件生效。

$ sudo swapon /swapfile

将新创建的交换文件添加到 fstab 文件中,这样交换分区空间的修改即使在重启后也可以生效。

$ vi /etc/fstab

/swapfile swap swap defaults 0 0

检查一下新创建的交换文件。

$ swapon --show

NAME TYPE SIZE USED PRIO

/dev/sda5 partition 2G 657.8M -1

/swapfile file 1024M 0B -2

现在我可以看到一个新的  1GB 的 /swapfile1 文件了。重启系统以使新的交换文件生效。

方法 2 : 通过 dd 命令来创建交换文件

dd 命令是另一个实用程序,可以帮助我们立即创建预分配大小的文件。

以下 dd 命令将创建 1GB 的 /swapfile1。

$ sudo dd if=/dev/zero of=/swapfile1 bs=1G count=1

1+0 records in

1+0 records out

1073741824 bytes (1.1 GB, 1.0 GiB) copied, 16.6154 s, 64.6 MB/s

详解: if=/dev/zero 是输入文件,/dev/zero 是类 Unix 操作系统中的一个特殊文件,它提供从它读取的尽可能多的空字符(ASCII NUL,0x00)。

of=/swapfile1 设置输出文件。

bs=1G 一次性读写的大小为 1GB

count=1 仅复制一个输入块

检查一下创建的文件的大小是否正确。

$ ls -lh /swapfile1

-rw-r--r-- 1 root root 1.0G Jun 7 09:58 /swapfile1

将该文件的权限设置为 600 这样只有 root 用户可以访问这个文件。

$ sudo chmod 600 /swapfile1

通过运行以下的命令来将此文件转换为交换文件。

$ sudo mkswap /swapfile1

Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)

no label, UUID=96def6d7-b2da-4954-aa72-aa32316ec993

通过运行以下的命令来使交换文件生效。

$ sudo swapon /swapfile1

将新创建的交换文件添加到 fstab 文件中,这样交换分区空间的修改即使在重启后也可以生效。

$ vi /etc/fstab

/swapfile1 swap swap defaults 0 0

检查新创建的交换文件。

$ swapon --show

NAME TYPE SIZE USED PRIO

/dev/sda5 partition 2G 1.3G -1

/swapfile file 1024M 0B -2

/swapfile1 file 1024M 0B -3

现在我可以看到一个新的  1GB 的 /swapfile1 了。重启系统以使新的交换文件生效。

方法 3 : 通过硬盘分区来创建交换文件

我们也推荐使用通过硬盘分区的方式来创建交换分区。

如果你已经在你的另一个硬盘上通过 fdisk 命令创建了一个新的分区,假设我们已经创建了一个叫做 /dev/sda4 的分区。

使用 mkswap 命令来将这个分区转换成交换分区。

$ sudo mkswap /dev/sda4

通过运行以下命令来使交换文件生效。

$ sudo swapon /dev/sda4

把新增的交换文件添加到 fstab 文件中,这样即使是重启了系统交换分区的修改也能生效。

$ vi /etc/fstab

/dev/sda4 swap swap defaults 0 0

检查新创建的交换文件。

$ swapon --show

NAME TYPE SIZE USED PRIO

/dev/sda5 partition 2G 1.3G -1

/swapfile file 1024M 0B -2

/swapfile1 file 1024M 0B -3

/dev/sda4 partition 1G 0B -4

我可以看到新的交换分区 1GB 的 /dev/sda4。重启系统就可以使用新的交换分区了。

原文来自:  http://www.linuxprobe.com/linux-create-partition.html

本文转载自:

共有 人打赏支持
问题终结者
粉丝 9
博文 585
码字总数 69949
作品 0
运维
如何在 Linux 中使用 LVM 创建和扩展交换分区

我们使用 LVM 进行灵活的卷管理,为什么我们不能将 LVM 用于交换分区呢? 这可以让用户在需要时增加交换分区。如果你升级系统中的内存,则需要添加更多交换空间。这有助于你管理运行需要大量...

作者: Ramya Nuvvula ⋅ 04/26 ⋅ 0

Centos7 add delete Swap exchange partitions

导读 Linux 将物理内存分为内存段,叫做页面。交换是指内存页面被复制到预先设定好的硬盘空间(叫做交换空间)的过程,目的是释放对于页面的内存。物理内存和交换空间的总大小是可用的虚拟内存...

问题终结者 ⋅ 05/21 ⋅ 0

Linux 上扩展swap分区

Linux 上扩展swap分区 想像一种情景,当我们的Linux系统用尽交换空间时,在这种情况下,我们想要使用swap分区扩展交换空间,但在某些情况下磁盘上已经没有可用的空闲分区了,致使我们不能把它...

898009427 ⋅ 06/12 ⋅ 0

mysql一直使用swap,导致swap空间用尽变卡

大致操作步骤: 1.调整内核参数,/proc/sys/vm/swapiness 2.调整mysql参数,innodbflushmethod 3.加mysql配置参数memlock,将mysql锁定在内存重防止被swapping out 4.手动释放swap空间,swapo...

jalyzjs ⋅ 05/28 ⋅ 0

linux下怎么查询服务器的信息

参考:https://zhidao.baidu.com/question/621368750657770092.html 1,查看内存大小: cat /proc/meminfo |grep MemTotal 2,其他一些可以查看详细linux系统信息的命令和方法: uname -a # 查...

phpervip ⋅ 05/30 ⋅ 0

给阿里云的linux服务器添加swap分区

1、首先创建用户交换分区的文件。 这样创建1G的分区文件 2、初始化分区文件 3、启动交换分区 4、设置开机自动挂载 添加 /mnt/swap swap swap defaults 0 0 5、设置使用swap分区的阀值 修改文...

编程老陆 ⋅ 05/25 ⋅ 0

Arch Linux 安装指南

1. 前提 为什么推荐Arch Linux?因为它好用呗! 如果想要学习Linux,Arch Linux是个很好的选择。Arch Linux提供了非常详细并且更新及时的Wiki(帮助文档),使用系统的过程中遇到的问题基本上...

清无色 ⋅ 05/14 ⋅ 0

Linux与VMware安装注意事项

Linux与VMware安装注意事项 一、Linux与Windows的不同 Linux严格区分大小写 Linux中所有内容都以文件形式保存,包括硬件 Linux不靠扩展名区分文件类型 Windows下的程序不能直接在Linux中安装...

JS_HCX ⋅ 06/13 ⋅ 0

Linux 增加交换分区

Linux下增加交互分区(swap)主要有两种方法:一种是swap分区;另一种是 swap文件。前者适合有空间的分区可以使用;后者适合没有空的磁盘分区,硬盘的空间已经分配完毕了。 最近安装CentOS ...

科技小能手 ⋅ 2017/11/12 ⋅ 0

从Windows文件夹到Linux分区

1. 前提 1.1 本文不是针对零基础的用户,因此你必须具备这些技能: 知道什么是Windows系统 简单使用Windows系统 想要了解或安装Linux 1.2 本文不会对任何行为作担保,包括但不仅仅包括: 为了...

清无色 ⋅ 05/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

说说javascript中的那些专业名词

DOM(Document Object Model) 文档对象模型 BOM(Browser Object Model) 浏览器对象模型 ECMA(European Computer Manufacturer's Association) 欧洲计算机制造商协会 W3C(World Wide Web Conso......

hang1989 ⋅ 26分钟前 ⋅ 0

Bootstrap Wizard 多步表单控件

废话 有一块需求是 有多步表单 点击下一步时触发验证一个范围内的表单,点击上一步或取消,清空表单并返回第一步,点击最后一步提交整个表单的 就找到了这个插件,本来自己写了一个原生的 fo...

无极之岚 ⋅ 42分钟前 ⋅ 0

如何利用Spring Cloud构建起自我修复型分布式系统

利用Netflix所打造的组件及各类大家熟知的工具,我们完全可以顺利应对由微服务以及分布式计算所带来的技术挑战。 在过去一年当中,微服务已经成为软件架构领域一个炙手可热的新名词,而且我们...

harries ⋅ 今天 ⋅ 0

临近实习前的感想

再过两星期就要开始新的一段实习了,想想去年的这个时候也在实习,心中不免思绪万千,也一直想写对2017做个总结,但一直迟迟没有下笔。 2017年的春节,我就开始准备开学后找份实习。那时候就...

无精疯 ⋅ 今天 ⋅ 0

Spring AOP(面向切面编程)

Spring AOP概念: Spring AOP 可以劫持一个执行的方法,在方法执行之前或之后添加额外的功能。通常情况下,AOP把项目中需要在多处用到的功能,比如日志、安全和事物等集中到一个类中处理,而...

霍淇滨 ⋅ 今天 ⋅ 0

人工智能、机器学习、数据挖掘以及数据分析有什么联系?

人工智能是目前炙手可热的一个领域,所有的互联网公司以及各路大迦们纷纷表态人工智能将是下一个时代的革命性技术,可与互联网、移动互联网时代的变更相媲美;AlphaGo在围棋领域战胜人类最顶...

董黎明 ⋅ 今天 ⋅ 0

使用 vue-cli 搭建项目

vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli 一、 安装 node.js 首先需要安装node环境,可以直接到中...

初学者的优化 ⋅ 今天 ⋅ 0

设计模式 之 享元模式

设计模式 之 享元模式 定义 使用共享技术来有效地支持大量细粒度对象的复用 关键点:防止类多次创建,造成内存溢出; 使用享元模式来将内部状态与外部状态进行分离,在循环创建对象的环境下,...

GMarshal ⋅ 今天 ⋅ 0

SpringBoot集成Druid的最简单的小示例

参考网页 https://blog.csdn.net/king_is_everyone/article/details/53098350 建立maven工程 Pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM......

karma123 ⋅ 今天 ⋅ 0

Java虚拟机基本结构的简单记忆

Java堆:一般是放置实例化的对象的地方,堆分新生代和老年代空间,不断未被回收的对象越老,被放入老年代空间。分配最大堆空间:-Xmx 分配初始堆空间:-Xms,分配新生代空间:-Xmn,新生代的大小一...

算法之名 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部