在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. Docker学习笔记导航帖

    1. Docker安装 安装docker https://www.cnblogs.com/kreo/p/10813010.html

  2. Jquery DataTables 服务器后端分页 Ajax请求添加自定义参数.

    项目使用AdminLTE(基于Bootstrap 二次开发的框架)作为开发框架. 使用DataTables 的时候部分页面需要传参 给后台做筛选过滤. 但是不知道怎么将DataTables的参数 和自 ...

  3. POJ1611(The Suspects)--简单并查集

    题目在这里 关于SARS病毒传染的问题.在同一个组的学生是接触很近的,后面也会有新的同学的加入.其中有一位同学感染SARS,那么该组的所有同学得了SARS.要计算出有多少位学生感染SARS了.编号为0 ...

  4. iOS - 外包开发常用第三方库(1)

    一:第三方插件1:基于响应式编程思想的oc地址:https://github.com/ReactiveCocoa/ReactiveCocoa2:hud提示框地址:https://github.com/ ...

  5. UI5-技术篇-Hybrid App-1-Barcode扫描

    参考资料: https://www.w3cschool.cn/cordova/cordova_overview.html https://blogs.sap.com/2017/01/03/sapui5 ...

  6. hibernate saveorupdate方法只有更新有效果,保存没有效果

    转自:https://blog.csdn.net/KAIXINLUOYE/article/details/72821014 单主键生成策略由native改成assigned后,问题解决.

  7. 宽字节 多字节 mbstowcs wcstombs

    函数 size_t wcstombs(char *dest, const wchar_t *src, size_t n); //wide-character to a multibyte n:被写入到 ...

  8. (一)react-native开发系列之Mac开发环境配置

    写在前面 在开始之前,先说下选择react-native的背景原因 最近一年来,公司为了节省开发成本,以及降低维护成本,指派我开始做起前端开发app的工作,我和公司的小伙伴们就开始了漫长的app开发之 ...

  9. Java Data JPA +hibernate 保存或者是查询遇到的坑

    由于项目需求,接触了Java Data JPA +hibernate,它的调用方式是controller调用service,service有实现的接口serviceimpl,serviceimpl调用 ...

  10. tcpdump命令及输出详解

    一. 使用方法 1. 指定类型 host:指定主机 tcpdump host 192.168.100.1 tcpdump host 192.168.100.1 and !192.168.100.2 t ...