SWAP(交换内存)

1、什么是交换内存?

在硬盘上创建一块区域,当你的物理内存快要被用光的时候,内核临时的

物理内存上的文件数据交换到硬盘上的这段区域上面,当物理内存有闲置的时候

在把交换内存上的数据调回到物理内存上的。可能在大多数时候,你会发现你的

交换内存没有被用到,为什么我们的系统在安装的时候强制我们要建立交换内存?

牺牲一定的硬盘空间,给操作系统买份保险!

2、创建交换内存:

创建的步骤:

1、 创建新分区,并且更改分区标识符号为82.

或者在本机上使用dd命令创建一个虚拟文件。

2、 使用mkswap对指定设备制作交换内存文件系统。

3、 swapon开启交换内存

(但是非常遗憾,下次启动机器的时候仍然需要手动使用swapon手动开启)建议直接写入到/etc/fstab中

4、 查看free  -m   ,swapon  -s进行查看

分区类型交换内存:速度快、独立分区

1、fdisk  /dev/sdb

n     t    82

#partprobe  /dev/sdb          //重新加载分区表

2、制作swap

# mkswap  /dev/sdb7          //以sdb7为例

3、写/etc/fstab

/dev/sdb7    swap  swap   defaults  0  0     //永久挂载格式

UUID=XXXXXX   swap  swap  defaults  0  0     //生产环境blkid查看文件系统UUID

# swapon  -a

4、查看:

# free  -m

# swapon  -s

文件类型的交换内存:相对速度慢、比较灵活

1、创建虚拟文件:

# dd  if=/dev/zero  of=/tmp/swap-file1  bs=1M  count=N   //N为正整数

2、制作swap文件系统

# mkswap  /tmp/swap-file1

3、挂载使用/etc/fstab

/tmp/swap-file1  swap  swap  defaults 0 0

# swapon  -a

4、查看:

# free  -m

# swapon  -s

 

交换内存的优化及人为干预:

交换内存的调优:

 

可调参数:/proc/sys/vm/swappiness

 

当系统非常需要使用内存时,内核会把匿名内存(Anonymous memory)和System V的共享内存(shared memory)交换到磁盘上去,而真正的文件不需要交换到交换内存上去,而是直接写会到磁盘文件系统上(清掉page cache)。

调低/proc/sys/vm/swappiness时,核心倾向于不交换,主要用于更快的响应速度。如:apache

调高/proc/sys/vm/swappiness时,核心倾向于使用交换内存,主要用于繁忙的吞吐量。如:文件服务器

 

内核尝试去检查一个参数swap_tendency:

Swap_tendency  < 100,内核会尽量的从page cache中做回收(写回page cache)

Swap_tendency  >=100,内核会尽量交换匿名内存和共享内存。

Swap_tendency = mapped_ratio/2  + distress + vm_swappiness(swap_tendency计算公式)

● mapped_ration : 物理内存的使用百分比。

 distress : 内核尝试释放物理内存的难易程度0-100(page  cache回收的难易程度)。distress悲痛;危难

vm_swappiness:是我们可以通过/proc/sys/vm/swappiness内核参数调节的值。

可以看出我们可以人为的干预交换内存的交换,但无法准确控制因为有distress参数

 

交换内存的优化:

使用多个磁盘做raid0

● 使用SSD设备

● 2.6内核开始交换文件和交换分区,速度上区别不太只要文件没有太多碎片。

● 当挂载交换分区或文件时,每新加一个交换设备优先级比前一个要低一些(优先级高的被先用到)。可以使用 pri=values来指定挂载优先级。

如果要使用多个交换分区来轮询(round-robin),那么多个交换分区使用相同的优先级。

交换内存设置为多大?

docs.redhat.com

 

如何设置优先级:

/dev/sdb7     swap   swap  defaults,pri=5   0   0

/dev/sdc6     swap   swap   defaults,pri=5  0   0  

linux中的交换分区(swap)及优化的更多相关文章

  1. linux 交换分区 swap

    linux swap分区用来保证内存过载时也可以使用,是在磁盘级别对内存的一次扩展,swap分区必须是一个单独的分区 创建过程: 1.用fdisk 命令新建分区,在创建过程中通过L命令和t命令来调整分 ...

  2. Linux 交换分区swap

    Linux 交换分区swap 一.创建和启用swap交换区 如果你的服务器的总是报告内存不足,并且时常因为内存不足而引发服务被强制kill的话,在不增加物理内存的情况下,启用swap交换区作为虚拟内存 ...

  3. Linux之添加交换分区

    Linux下的交换分区我们可以随意改变大小,如果说日常生活中分区不够用,今天我们来举个例子如何添加. 1.首先是使用dd命令创建一个空文件,这个空文件的大小就是你要继续添加的swap的大小,比如我这里 ...

  4. Linux中磁盘mbr分区——实践篇

    Linux中磁盘mbr分区——实践篇 fdisk命令 语法 fdisk(选项)(参数) 选项 -b <分区大小> 指定每个分区的大小 -l 列出分区表信息 -v 显示版本信息 参数 设备文 ...

  5. Linux_交换分区SWAP

    一.交换分区SWAP 1️⃣:交换分区SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用. 2️⃣:交换分区一般指定虚拟内存的大小 ...

  6. Linux设置交换分区swap

    参考: http://www.vpser.net/opt/vps-add-swap.html https://www.zntec.cn/archives/vps-swap.html http://yz ...

  7. Linux交换分区swap

    一.SWAP 说明 1.1 SWAP 概述 当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用.那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被 ...

  8. Linux - 创建交换分区 swap

    购买的 1GB 内存的 Linux 小机器,在编译安装 PHP 的时候内存捉急,只好开启 swap 交换分区来增大内存. [root@VM_139_38_centos php-7.2.12]# cat ...

  9. linux(centos8): 临时关闭/永久关闭交换分区swap?

    一,为什么要关闭swap? 1,swap的用途? swap 分区就是交换分区,(windows平台叫虚拟内存) 在物理内存不够用时, 操作系统会从物理内存中把部分暂时不被使用的数据转移到交换分区, 从 ...

随机推荐

  1. IntelliJ IDEA 2019.3安装激活破解使用教程

    一. 前言 作为一枚程序员,你肯定对IntelliJ IDEA这个工具一点也不陌生!或许你没有用过,但你也一定听说过.作为在业界被公认为最好的java开发工具,IDEA每次大版本更新都备受瞩目.划重点 ...

  2. A.Changing Volume

    题目:改变音量 题意:给定两个数a和b,有6个操作(-5, -2, -1, +1, +2, +5),求a变到b的最小操作次数 操作的过程中不能变到小于0,即音量不能调到小于0 分析: (贪心),我们可 ...

  3. 【JS】379- 教你玩转数组 reduce

    reduce 是数组迭代器(https://jrsinclair.com/articles/2017/javascript-without-loops/)里的瑞士军刀.它强大到您可以使用它去构建大多数 ...

  4. Redis sorted set 常用命令介绍

    Redis sorted set 使用: Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个 ...

  5. 大数据学习笔记——Hive完整部署流程

    Hive详细部署教程 此篇博客承接上篇Hadoop和Zookeeper的部署教程,将会详细地对HIve的部署做一个整理,Hive相当于是封装在HDFS和Mapreduce上的一套sql引擎,只需要安装 ...

  6. 4个点说清楚Java中synchronized和volatile的区别

    作者 : Hollis 回顾一下两个关键字:synchronized和volatile 1.Java语言为了解决并发编程中存在的原子性.可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如sy ...

  7. java之线程(线程的创建方式、java中的Thread类、线程的同步、线程的生命周期、线程之间的通信)

    CPU:10核 主频100MHz 1核  主频    3GHz 那么哪一个CPU比较好呢? CPU核不是越多越好吗?并不一定.主频用于衡量GPU处理速度的快慢,举个例子10头牛运送货物快还是1架飞机运 ...

  8. ubuntu14.04编译vim8.1

    安装依赖 这一步其实我没做,直接下载编译成功了.估计有些包不是必需的.姑且列在这里供参考 sudo apt install libncurses5-dev libgnome2-dev libgnome ...

  9. HA: Infinity Stones Vulnhub Walkthrough

    下载地址: https://www.vulnhub.com/entry/ha-infinity-stones,366/ 主机扫描: 目录枚举 我们按照密码规则生成字典:gam,%%@@2012 cru ...

  10. day03运算符、表达式、自增自减、三目运算符、程序结构、用户输入

    复习 1.java的输出语句 1)System.out.println(); 2)System.out.print(); 2.注释 1)单行注释 // 2)多行注释 /* .... */ 3.变量 1 ...