vm.overcommit_memory

vm.overcommit_memory = 0
vm.overcommit_memory = 1
vm.overcommit_memory = 2

0 默认设置。表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
遗憾的是因为内存是使用启发式overcommitting handle(会尽量减少swap的使用)而非准确算法计算进行部署,这个设置有时可能会造成系统中的可用内存超载。

1 允许超过CommitLimit,即允许分配所有的物理内存,而不管当前的内存状态如何。
使用这个设置会增大内存超载的可能性,但也可以增强大量使用内存任务的性能。

2 拒绝超过CommitLimit的分配,即拒绝等于或者大于总可用 swap 大小以及 overcommit_ratio 指定的物理 RAM 比例的内存请求。如果您希望减小内存过度使用的风险,这个设置就是最好的。

公式:CommitLimit = (Physical RAM * vm.overcommit_ratio / 100) + Swap

vm.overcommit_ratio

vm.overcommit_ratio = 90 

默认为50,为物理内存分配时的比例。
只有当vm.overcommit_memory = 2的时候才会生效

查看系统overcommit信息

# cat /proc/meminfo |grep -i commit
CommitLimit:    90971304 kB
Committed_AS:   64872556 kB

CommitLimit:最大能分配的内存(个人理解仅仅在vm.overcommit_memory=2时候生效),具体的值是
SWAP内存大小 + 物理内存 * overcommit_ratio / 100

Committed_AS:当前已经分配的内存大小

临时设置

#sysctl vm.swappiness=10

vm.swappiness

vm.swappiness = 1 

默认值为60,代表 当剩余物理内存低于40%(40=100-60)时,开始使用交换空间

vm.swappiness = 0
最大限度使用物理内存,然后才是 swap空间,即在内存不足的情况下–当剩余空闲内存低于vm.min_free_kbytes limit时,使用交换空间。
在内存紧张时优先减少RAM里文件系统缓存的大小,而非使用swap空间,这是一种提高数据库性能的推荐做法。

vm.swappiness = 1
内核版本3.5及以上、Red Hat内核版本2.6.32-303及以上,进行最少量的交换,而不禁用交换。

vm.swappiness = 10
当系统存在足够内存时,推荐设置为该值以提高性能。

vm.swappiness = 60
默认值

vm.swappiness = 100
积极的使用交换空间。

对于内核版本为3.5及以上,Red Hat内核版本2.6.32-303及以上,多数情况下,设置为1可能比较好,0则适用于理想的情况下(it is likely better to use 1 for cases where 0 used to be optimal)

临时设置

# echo 10 > /proc/sys/vm/swappiness

转载于:https://www.cnblogs.com/ctypyb2002/p/9792921.html

linux 的overcommit_memory、overcommit_ratio、swappiness 的说明相关推荐

  1. 修改linux swap空间的swappiness,降低对硬盘的缓存

    修改linux swap空间的swappiness,降低对硬盘的缓存 linux 会使用硬盘的一部分做为SWAP分区,用来进行进程调度--进程是正在运行的程序--把当前不用的进程调成'等待(stand ...

  2. linux下overcommit_memory的问题

    背景 公司的redis有时background save db不成功,通过log发现下面的告警,很可能由它引起的: [13223] 17 Mar 13:18:02.207 # WARNING over ...

  3. Linux: Swap与swappiness

    1. Swap简介 1.1. 什么是交换,为什么要交换? 交换(Swapping)是将内存页复制到硬盘上的预配置空间[称为交换空间(Swap-Space)]以释放该内存页的过程.物理内存(the ph ...

  4. linux内核killler,Linux内核参数overcommit_memory和OOM killer介绍

    什么是Linux Overcommit和OOM overcommit_memory是一个内核对内存分配的一种策略,它有三个可选值:0.1.2. 0. 表示内核将检查是否有足够的可用内存供应用进程使用: ...

  5. Linux kernel可设置参数说明(sysctl.conf)

    kernel 3.8.13 目录: /usr/share/doc/kernel-doc-3.8.13/Documentation/sysctl/ abi.txt Documentation for / ...

  6. Linux内存清道夫--OOM Killer

    1.OOM Killer 1.1.OOM Killer定义 OOM(Out Of Memory) Killer作为linux系统中守护进程,主要在系统内存严重不足时开始工作.出现这种情况是因为服务器上 ...

  7. linux 手动添加 swap 分区

    为什么需要swap 根据Redhat公司的建议,Linux系统swap分区最适合的大小是物理内存的1-2倍.不过Linux上有些软件对swap分区得需求较大,例如要顺利执行Oracle数据库软件,sw ...

  8. swappiness

    2019独角兽企业重金招聘Python工程师标准>>> swappiness参数位于:/etc/sysctl.cof swappiness=0表示最大限度使用物理内存,然后才是swa ...

  9. linux Swap交换分区概念

    Swap交换分区概念 什么是Linux swap space呢?我们先来看看下面两段关于Linux swap space的英文介绍资料: Linux divides its physical RAM ...

最新文章

  1. GDI+ 中Image::FromStream ,用流的方式显示图像
  2. python3输入的input()坑
  3. arraylist可以存储不同类型吗_结构胶的种类多吗?不同的类型有哪些产品特性?...
  4. vue-cli使用swiper4在ie以及safari报错
  5. 设计模式——Bridge 桥模式
  6. 前端调用后端接口的错误(400)
  7. JeecgBoot版本4月份新版即将发布,抢先体验。。
  8. go.js节点字体设置
  9. Theory and tools for the conversion of analog to spiking convolutional neural networks
  10. Sonar - 部署常见问题及解决方法
  11. 两种方法求单链表逆序
  12. 税务计算机类考试题型,税务师考试题型分值分配、计算器要求及2020年考试时间安排...
  13. 差分放大电路的构成(零点漂移、差分放大电路是怎么构成的、共模信号、差模信号)
  14. android获取角速度,android dyrscope sensor 角速度传感器调试
  15. 她力量系列四丨读博6年两次换导师,靠一点点“倔”,俞舟成为social chatbot的开拓者之一
  16. Python常用小技巧(三)——批量修改图片尺寸
  17. 计算机视觉城市排名,计算机视觉技术量化城市变迁
  18. 用深度学习构造聊天机器人简介
  19. 20154322杨钦涵 Exp6 信息搜集与漏洞扫描
  20. [人工智能-深度学习-59]:生成对抗网络GAN - 基本原理(图解、详解、通俗易懂)

热门文章

  1. jmeter压测之 监控--nmon
  2. BZOJ3508 开灯 [校内NOIP2018模拟20181027] 密码锁
  3. hibernate的映射之二(一对多双向关联)
  4. OpenResty 反向代理的用法与技巧
  5. MonkeyRunner——如何在实体机上启动一个程序
  6. 02 | 系统可用性:没有故障,系统就一定是稳定的吗?
  7. w7 全网架构-rsync-备份
  8. docker容器化python开发环境_如何 Docker 化 Python Django 应用程序
  9. 华为HCIE实验考试险过,考试真题分享、答题经验分享
  10. 与时代并肩的数字创新者