在Linux下,swap的作用类似Windows系统下的“虚拟内存”。当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况。Linux下的swap有两种实现形式,一种是通过某个物理磁盘分区来实现swap,另一种是通过虚拟内存文件来实现swap。

一、物理磁盘分区来实现swap

1、通过分区软件创建一个分区,分区类型fdisk下为82,gdisk下为8200,partep分区标记没有定义swap,其实分区后不更改分区类型也行测试也可以用,但为了在分区工具下方便查看最好还是把分区类型改成swap对应的分区类型,本人理解分区类型就是分区软件下用来描述分区所要承载的文件系统的类型,比如分区类型为83表示为linxu分区,用于格式化成ext3 ext4等linux文件系统,分区创建的方法这里就不写了前面有分区创建的方法。

2、使用mkswap命令把分区格式化为swap分区
-------------------------------------------------------------------
root@debian:~# mkswap /dev/sdb1
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)     #交换分区的容量为1G
no label, UUID=47fe2c83-c4b9-4ee5-ad91-4a9642f66df5
root@debian:~#
-------------------------------------------------------------------

3、使用swapon命令使交换分区/dev/sdb1生效
-------------------------------------------------------------------
root@debian:~# free -h            #查看没加前swap容量
         total    used   free    shared    buff/cache   available
Mem:    2.0G    250M    1.4G  8.5M     311M      1.6G
Swap:    2.0G      0B          2.0G       #没加前容量为2G

root@debian:~# swapon /dev/sdb1        #使新添加的swap生效
root@debian:~# free -h             #查看添加完后的容量
         total    used    free    shared   buff/cache   available
Mem:    2.0G     250M      1.4G   8.5M         311M      1.6G
Swap:   3.0G     0B        3.0G       #添加完容量变成了3G
root@debian:~#
-------------------------------------------------------------------

4、Linux swapon命令参数及用法
swapon 是开启swap,相对的便有一个关闭swap的指令,swapoff

swapon [选项]   [设备]

-h   显示帮助信息
-V   显示版本信息
-v   显示详细模式
-s   显示swap的使用情况,可以查看所有激活的swap
-a   将/etc/fstab文件中所有设置为swap的设备启用
-p   设定优先权,你可以在0到32767中间选一个数字给他。或是在 /etc/fstab 里面加上 pri=[value] ([value]就是0~32767中间一个数字),然后你就可以很方便的直接使用 swapon -a 来启动他们,而且有优先权设定。
  
举例:显示swap的使用情况
---------------------------------------------------------------------
root@debian:~# swapon -s
Filename    Type     Size     Used   Priority
/dev/sda5   partition   2095100    0     -1      #随系统安装一起创建的swap优先级为1
/dev/sdb1      partition   1048572        0     -2     #后创建的swap优先级为2,类型为分区,大小为1G
root@debian:~#
---------------------------------------------------------------------

5、Linux swapoff命令参数及用法

swapon [选项]   [设备]

-a   将/etc/fstab文件中所有设置为swap的设备关闭

举例:
---------------------------------------------------------------------
root@debian:~# swapoff /dev/sdb1     # 关闭swap分区/dev/sdb1
root@debian:~# swapon -s
Filename    Type      Size     Used   Priority
/dev/sda5   partition   2095100    0     -1
root@debian:~#
---------------------------------------------------------------------

6、将新添加的交换分区添加到/etc/fstab文件中使之开机启动

根据不同的发行版将下面的内容添加到/etc/fstab中,添加完后最好用swapon -a命令查看添加的是否有问题

UUID=47fe2c83-c4b9-4ee5-ad91-4a9642f66df5   none    swap    sw   0    0 #Debian9.5默认的格式,UUID为对应的交换分区UUID

UUID=47fe2c83-c4b9-4ee5-ad91-4a9642f66df5    swap  swap   defaults    0   0 #CentOS7-1810与openSUSE15默认的格式,UUID为对应的交换分区UUID

二、使用文件来实现swap
当系统内没有剩余可用的分区时我们可以用在Linux的某个目录下创建一个空白文件,通过把这个文件格式化成swap从而实现创建swap的过程。

1、通过dd命令在/tmp/目录下新增加一个1G大小的空文件
---------------------------------------------------------------------
root@debian:~# dd if=/dev/zero  of=/tmp/swap  bs=1G  count=1   #增加一个1G大小的空文件
记录了1+0 的读入
记录了1+0 的写出
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 5.46136 s, 197 MB/s
root@debian:~# chmod 600 /tmp/swap        #修改文件权限,只有root读写
root@debian:~# ls -lh /tmp/swap           #查看创建的文件大小和权限
-rw------- 1   root   root   1.0G  8月 26 14:25   /tmp/swap
root@debian:~#
---------------------------------------------------------------------

2、使用mkswap命令把创建的文件格式化为swap
---------------------------------------------------------------------
root@debian:~# mkswap /tmp/swap
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=a0aa03d4-406d-4ecd-af04-12998e408192
root@debian:~#
---------------------------------------------------------------------

3、使用swapon命令使swap生效
---------------------------------------------------------------------
root@debian:~# swapon   /tmp/swap
root@debian:~# swapon -s
Filename    Type      Size   Used   Priority
/dev/sda5   partition   2095100   0    -1
/tmp/swap   file     1048572    0    -2      #创建成功
root@debian:~#
---------------------------------------------------------------------

4、将新添加的交换分区添加到/etc/fstab文件中使之开机启动

根据不同的发行版将下面的内容添加到/etc/fstab中,添加完后最好用swapon -a命令查看添加的是否有问题
---------------------------------------------------------------------
/tmp/swap    none    swap    sw    0    0    #Debian9.5默认的格式,这里不要用UUID,这是因为系统只会查询块设备,不会查询文件

/tmp/swap    swap   swap   defaults    0   0     #CentOS7-1810与openSUSE15默认的格式

---------------------------------------------------------------------

Linux swap的创建与配置的更多相关文章

  1. CentOS7下swap分区创建(添加),删除以及相关配置

    在添加swap分区之前我们可以了解下当前系统swap是否存在以及使用情况,可用: 1. free –h 或 swapon –s 了解硬盘使用情况(一般/dev/vda1为挂载硬盘): 1. df –h ...

  2. Linux下多路径multipath配置

    一.multipath在redhat 6.2中的基本配置: 1. 通过命令:lsmod |grep dm_multipath  检查是否正常安装成功.如果没有输出说明没有安装那么通过yum功能安装一下 ...

  3. 怎么设置Linux swap分区?方法教程

    如何设置Linux swap分区 看到不少朋友问linux下swap分区的问题,收集到一篇 不错的文章 ,分享下. 什么是Swap?Swap,即交换区,除了安装Linux的时候,有多少人关心过它呢?其 ...

  4. 如何设置Linux swap分区

    看到不少朋友问linux下swap分区的问题,收集到一篇 不错的文章 ,分享下.什么是Swap?Swap,即交换区,除了安装Linux的时候,有多少人关心过它呢?其实,Swap的调整对Linux服务器 ...

  5. Linux下多路径multipath配置【转】

    一.multipath在redhat 6.2中的基本配置: 1. 通过命令:lsmod |grep dm_multipath  检查是否正常安装成功.如果没有输出说明没有安装那么通过yum功能安装一下 ...

  6. Linux Swap交换分区介绍

    Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中, ...

  7. linux替换yum源及配置本地源

    linux系统安装后自带的bash源由于在国外,安装软件包的时候会非常慢,最好替换一下yum源. ​关于yum源的简单介绍 ​           yum的主要功能是更方便地添加,删除和更新rpmba ...

  8. 【转载】Linux 通过mount -o loop 配置本地.iso镜像为yum源(yum仓库)

    原文地址:https://www.jb51.net/os/RedHat/2682_all.html 如果拷贝到本地,可以使用mount mount fileName mountPoint -o loo ...

  9. 【转】linux 编译安装nginx,配置自启动脚本

    linux 编译安装nginx,配置自启动脚本 本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装ng ...

随机推荐

  1. PAT(B) 1037 在霍格沃茨找零钱(Java)

    题目链接:1037 在霍格沃茨找零钱 (20 point(s)) 题目描述 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle) ...

  2. hadoop 伪分布启动-fs格式化

    1.独立模式(standalone|local) nothing! 本地文件系统. 不需要启用单独进程. 2.pesudo(伪分布模式) 等同于完全分布式,只有一个节点. SSH: //(Socket ...

  3. python检测当前端口是否使用

    基于python检测端口是否在使用 - 缘起花渊 - 博客园https://www.cnblogs.com/yqmcu/p/9804002.html def net_is_used(port,ip=' ...

  4. NIO堆外内存与零拷贝

    重点: 1.0拷贝需要系统支持. 普通内存模型: java线程内存 --> 操作系统内存 --> 硬盘 直接内存模型: java --> 操作系统内存 --> 硬盘 两者对比, ...

  5. Liar CodeForces - 822E (dp,后缀数组)

    大意: 给定串$s,t$, 给定整数$x$, 求判断$t$是否能划分为至多$x$段, 使这些段在$s$中按顺序,不交叉的出现. 设$dp_{i,j}$表示$s$匹配到$i$位, 划分了$j$段, 匹配 ...

  6. hdu 1045 要求全部逐一搜索完的深搜

    #include<stdio.h> #include<string.h> int visit[10][10]; char map[10][10]; int n,ans,ss,t ...

  7. 什么叫工业4.0,这篇接地气的文章终于讲懂了(ZT)

    原地址:https://www.cnblogs.com/namei/p/6110382.html 笔者早年从事过工业自动化行业,后来去了几个城市,讲过<工业互联网与工业文明史>这门课,以至 ...

  8. Python 2.7.x 和 3.x 版本的重要区别小结

    许多Python初学者都会问:我应该学习哪个版本的Python.对于这个问题,我的回答通常是"先选择一个最适合你的Python教程,教程中使用哪个版本的Python,你就用那个版本.等学得差 ...

  9. GIL与线程进程小知识点

    一 .GIL全局解释器 GIL是一个互斥锁:保证数据的安全(以牺牲效率来换取数据的安全)阻止同一个进程内多个线程同时执行(不能并行但是能够实现并发)并发:看起来像同时进行的GIL全局解释器存在的原因是 ...

  10. 动画 jquery-transit

    <script type="text/javascript" src="js/jquery.min.js"></script> < ...