[转帖]linux中 vm.overcommit_memory 的含义

linux,vm,overcommit,memory,含义 · 浏览次数 : 0

小编点评

| **vm.overcommit_memory** | **处理方式** | |---|---| | 1 | OVERCOMMIT_ALWAYS | | 2 | OVERCOMMIT_NEVER | | 0 | OVERCOMMIT_GUESS |

正文

https://www.cnblogs.com/wshenjin/p/15500202.html

 

vm.overcommit_memory 表示内核在分配内存时候做检查的方式。
这个变量可以取到0,1,2三个值。对取不同的值时的处理方式都定义在内核源码 mm/mmap.c 的 __vm_enough_memory 函数中。

  • 取 1 的时候:此时宏为 OVERCOMMIT_ALWAYS,函数直接 return 0,分配成功。

  • 取 2 的时候:此时宏为 OVERCOMMIT_NEVER,内核计算:内存总量×vm.overcommit_ratio/100+SWAP 的总量,如果申请空间超过此数值,则分配失败。vm.overcommit_ratio 的默认值为50。

  • 取 0 的时候:此时宏为 OVERCOMMIT_GUESS,内核计算:NR_FILE_PAGES 总量+SWAP总量+slab中可以释放的内存总量,如果申请空间超过此数值,则将此数值与空闲内存总量减掉 totalreserve_pages(?) 的总量相加。如果申请空间依然超过此数值,则分配失败。

以上为粗略描述,在实际计算时,如果非root进程,则在计算时候会保留3%的空间,而root进程则没有该限制

vm.overcommit_memory


默认值为:0

从内核文档里得知,该参数有三个值,分别是:

0:当用户空间请求更多的的内存时,内核尝试估算出剩余可用的内存。

1:当设这个参数值为1时,内核允许超量使用内存直到用完为止,主要用于科学计算

2:当设这个参数值为2时,内核会使用一个决不过量使用内存的算法,即系统整个内存地址空间不能超过swap+50%的RAM值,50%参数的设定是在overcommit_ratio中设定。

vm.overcommit_ratio


默认值为:50

这个参数值只有在vm.overcommit_memory=2的情况下,这个参数才会生效。

转载自:http://blog.sina.com.cn/s/blog_d495ebf80101pwwq.html

与[转帖]linux中 vm.overcommit_memory 的含义相似的内容:

[转帖]linux中 vm.overcommit_memory 的含义

https://www.cnblogs.com/wshenjin/p/15500202.html vm.overcommit_memory 表示内核在分配内存时候做检查的方式。这个变量可以取到0,1,2三个值。对取不同的值时的处理方式都定义在内核源码 mm/mmap.c 的 __vm_enough_

[转帖]关于Linux操作系统中LUN的队列深度(queue_depth)

Linux中的queue_depth(队列深度),可以用lsscsi查看。不过今天在我的vm 虚拟机环境中(无外界存储),是没有lsscsi命令。不过,从网上,搜到了如下的信息:$ lsscsi -l[0:0:1:0] disk FUJITSU MAM3184MP 0105 /dev/sda sta

[转帖]Linux磁盘I/O(二):使用vm.dirty_ratio和vm.dirty_background_ratio优化磁盘性能

文件缓存是一项重要的性能改进,在大多数情况下,读缓存在绝大多数情况下是有益无害的(程序可以直接从RAM中读取数据)。写缓存比较复杂,Linux内核将磁盘写入缓存,过段时间再异步将它们刷新到磁盘。这对加速磁盘I/O有很好的效果,但是当数据未写入磁盘时,丢失数据的可能性会增加。 当然,也存在缓存被写爆的

[转帖]vm 缓存相关参数配置

https://www.cnblogs.com/JennyYu/p/16664523.html 一、脏数据相关参数: 文件缓存是一项重要的性能改进,在大多数情况下,读缓存在绝大多数情况下是有益无害的(程序可以直接从RAM中读取数据)。写缓存比较复杂,Linux内核将磁盘写入缓存,过段时间再异步将它们

[转帖]Linux中常见IO调度器

https://www.jianshu.com/p/3c16e39a005a 单队列调度算法多队列调度算法 deadline mqdeadlines cfq bfq noop none kyber 对于磁盘I/O,Linux提供了cfq, deadline和noop三种调度策略 cfq: 这个名字是

[转帖]Linux中的grep -v、-e、-E用法小结

https://www.jb51.net/article/266590.htm grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,这篇文章主要介绍了Linux之grep -v、-e、-E用法总结,需要的朋友可以参考下 + 目录 简介 grep (global sea

[转帖]Linux中EOF和Expect命令详解

一、EOF说明 Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。可以把EOF替换成其他东西,意思是把内容当作标准输入传给程序。 回顾一下< <的用法。当shell看到< <的时候,它就会知道下一个词是一个分界符。在

[转帖]Linux中的Grep命令(在文件中查找文本)

[日期:2020-05-14] 来源:Linux公社 作者:醉落红尘 [字体:大 中 小] grep命令是(global regular expression print,全局正则表达式输出)的缩写,它是Linux中功能最强大且最常用的命令之一。 grep在一个或多个输入文件中搜索与给定模式匹配的行

[转帖]Linux中的目录结构是什么样的?有人说像“树”,你觉得呢

https://bbs.huaweicloud.com/blogs/380543 【摘要】 在 Linux/Unix 操作系统中,一切都是文件,即使目录是文件,普通文件也是文件,鼠标、键盘、打印机等设备也是文件,本文笔者将带大家了解一下Linux中的文件目录结构。 文件类型Linux 中有三大类文件

[转帖]linux中关于带宽 MTU的一些命令

linux中关于带宽 MTU的一些命令 https://blog.51cto.com/xiaoliuer/1882208 查看协商的带宽大小 sudo ethtools eth0 Linux更改网卡MTU方法: 1. 打开终端,查看当前网卡设置:ifconfig 2. 对需要改MTU的网卡进行设置(