linux 的overcommit_memory、overcommit_ratio、swappiness 的说明
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 的说明相关推荐
- 修改linux swap空间的swappiness,降低对硬盘的缓存
修改linux swap空间的swappiness,降低对硬盘的缓存 linux 会使用硬盘的一部分做为SWAP分区,用来进行进程调度--进程是正在运行的程序--把当前不用的进程调成'等待(stand ...
- linux下overcommit_memory的问题
背景 公司的redis有时background save db不成功,通过log发现下面的告警,很可能由它引起的: [13223] 17 Mar 13:18:02.207 # WARNING over ...
- Linux: Swap与swappiness
1. Swap简介 1.1. 什么是交换,为什么要交换? 交换(Swapping)是将内存页复制到硬盘上的预配置空间[称为交换空间(Swap-Space)]以释放该内存页的过程.物理内存(the ph ...
- linux内核killler,Linux内核参数overcommit_memory和OOM killer介绍
什么是Linux Overcommit和OOM overcommit_memory是一个内核对内存分配的一种策略,它有三个可选值:0.1.2. 0. 表示内核将检查是否有足够的可用内存供应用进程使用: ...
- Linux kernel可设置参数说明(sysctl.conf)
kernel 3.8.13 目录: /usr/share/doc/kernel-doc-3.8.13/Documentation/sysctl/ abi.txt Documentation for / ...
- Linux内存清道夫--OOM Killer
1.OOM Killer 1.1.OOM Killer定义 OOM(Out Of Memory) Killer作为linux系统中守护进程,主要在系统内存严重不足时开始工作.出现这种情况是因为服务器上 ...
- linux 手动添加 swap 分区
为什么需要swap 根据Redhat公司的建议,Linux系统swap分区最适合的大小是物理内存的1-2倍.不过Linux上有些软件对swap分区得需求较大,例如要顺利执行Oracle数据库软件,sw ...
- swappiness
2019独角兽企业重金招聘Python工程师标准>>> swappiness参数位于:/etc/sysctl.cof swappiness=0表示最大限度使用物理内存,然后才是swa ...
- linux Swap交换分区概念
Swap交换分区概念 什么是Linux swap space呢?我们先来看看下面两段关于Linux swap space的英文介绍资料: Linux divides its physical RAM ...
最新文章
- GDI+ 中Image::FromStream ,用流的方式显示图像
- python3输入的input()坑
- arraylist可以存储不同类型吗_结构胶的种类多吗?不同的类型有哪些产品特性?...
- vue-cli使用swiper4在ie以及safari报错
- 设计模式——Bridge 桥模式
- 前端调用后端接口的错误(400)
- JeecgBoot版本4月份新版即将发布,抢先体验。。
- go.js节点字体设置
- Theory and tools for the conversion of analog to spiking convolutional neural networks
- Sonar - 部署常见问题及解决方法
- 两种方法求单链表逆序
- 税务计算机类考试题型,税务师考试题型分值分配、计算器要求及2020年考试时间安排...
- 差分放大电路的构成(零点漂移、差分放大电路是怎么构成的、共模信号、差模信号)
- android获取角速度,android dyrscope sensor 角速度传感器调试
- 她力量系列四丨读博6年两次换导师,靠一点点“倔”,俞舟成为social chatbot的开拓者之一
- Python常用小技巧(三)——批量修改图片尺寸
- 计算机视觉城市排名,计算机视觉技术量化城市变迁
- 用深度学习构造聊天机器人简介
- 20154322杨钦涵 Exp6 信息搜集与漏洞扫描
- [人工智能-深度学习-59]:生成对抗网络GAN - 基本原理(图解、详解、通俗易懂)