博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux中的SWAP机制
阅读量:4039 次
发布时间:2019-05-24

本文共 784 字,大约阅读时间需要 2 分钟。

SWAP的作用

在Windows中,我们知道可以用虚拟内存来部分解决内存不足的问题,而在Linux下,SWAP就是起到类似作用的一个机制。当物理内存不足时,会将一部分磁盘内的储存空间当作SWAP分区使用,以环节内存容量不足的问题。

其基本操作有两个,分别为SWAP OUT与SWAP IN,前者时在系统发现内存不足时,将内存中暂时不用的数据交换出去放在SWAP分区的过程,而后者为当某进程又需要这些数据且系统发现还有空闲物理内存时,将SWAP分区中的数据交换回物理内存的过程。

同时,也类似于Windows的虚拟内存的设置大小,SWAP的大小也是有上限的,一旦swap使用完,操作系统就会触发OOM-Killer机制,把消耗内存最多的进程kill掉以释放内存。

SWAP如何工作

Linux系统会将内存剩余大小根据3个阈值来进行判定当前的状态,这三个阈值分别为min、low、high,这可以将剩余内存划分为多个状态:

  • 当剩余内存多于high时,系统会认为剩余内存充足
  • 当剩余内存多于low但是少于high时,这时剩余内存存在一定压力
  • 当剩余内存多于min但是少于low时,此时可以认为剩余内存已经较少,存在较大的压力
  • 若少于min,此时系统一般不会再去分配更多的物理内存,会保留部分内存供内核保留使用

现在,让我们来看看Linux中会合适进行SWAP:

  1. 当需要进行内存分配时,发现没有足够的空闲内存,此时会立刻触发内存回收
  2. 在后台有一个swapd守护进程会周期性地对系统内存进行检查,若当前可用内存降低到特定阈值之后会主动触发内存回收。

这里,第二点中的阈值可以详细解释一下,上面已经说过Linux中的内存有三个阈值,这里在检查时,若剩余内存到达low时,守护继承便开始回收内存,直到内存回到high,如果内存回收来不及,使得剩余内存低至min,这时会触发直接回收。

转载地址:http://jmsdi.baihongyu.com/

你可能感兴趣的文章
linux不同模块completion通信
查看>>
linux printf获得时间戳
查看>>
C语言位扩展
查看>>
linux dump_backtrace
查看>>
linux irqdebug
查看>>
git 常用命令
查看>>
linux位操作API
查看>>
uboot.lds文件分析
查看>>
uboot start.s文件分析
查看>>
没有路由器的情况下,开发板,虚拟机Ubuntu,win10主机,三者也可以ping通
查看>>
本地服务方式搭建etcd集群
查看>>
安装k8s Master高可用集群
查看>>
忽略图片透明区域的事件(Flex)
查看>>
忽略图片透明区域的事件(Flex)
查看>>
AS3 Flex基础知识100条
查看>>
Flex动态获取flash资源库文件
查看>>
flex中设置Label标签文字的自动换行
查看>>
Flex 中的元数据标签
查看>>
flex4 中创建自定义弹出窗口
查看>>
01Java基础语法-11. 数据类型之间的转换
查看>>