zoukankan      html  css  js  c++  java
  • Linux内存-Memory Overcommit

    一、Memory Overcommit
    1、Memory Overcommit
      操作系统承诺给进程的内存大小超过了实际可用的内存。
     
    2、Memory overcommit的关键
    • commit针对的是内存申请,内存申请不等于内存分配,内存只在实际用到的时候才分配,
    • 进程实际使用到的内存往往比申请的内存要少。
     
    二、内核参数
    1、overcommit_memory
    • 0:表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。(free memory + free swap + pagecache的大小 + SLAB中可回收的部分)
    • 1:Always overcommit. 允许overcommit,对内存申请来者不拒。
    • 2: Don’t overcommit. 禁止overcommit。
     
    2、vm.overcommit_ratio
    物理内存的比例,与vm.overcommit_memory=2搭配使用
     
    三、禁止overcommit
    当vm.overcommit_memory=2时,系统时怎么判断申请的内存是overcommit的?
    # grep -i commit /proc/meminfo
    CommitLimit:     8215244 kB
    Committed_AS:    6451100 kB

    CommitLimit:申请的内存总数超过CommitLimit的话就算是overcommit

    Committed_AS:所有进程已经申请的内存总大小
     
    CommitLimit的数值是通过如下两种方式计算出来的:
    1) (Physical RAM * vm.overcommit_ratio / 100) + Swap)
    2)直接通过内核参数vm.overcommit_kbytes大小

  • 相关阅读:
    linux-溢出程序
    linux下edb调试器
    IOS 学习
    xcode+OC基础学习
    mailcarrier25 EMAIL程序 典型覆盖返回地址XPSP3
    easyftpsvr-1.7.0.2 POC
    VS2010 MSDN Help Library 出现问题处理方法
    虚拟机XP 连接 虚拟机 linux
    修复文章···
    枚举所有进程所有模块,删除制定进程
  • 原文地址:https://www.cnblogs.com/guoxianqi2020/p/13926890.html
Copyright © 2011-2022 走看看