linux中给R分配内存,Linux内存超分配Overcommit深入理解

8种机械键盘轴体对比

linux中给R分配内存,Linux内存超分配Overcommit深入理解

文章插图
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
背景
【linux中给R分配内存,Linux内存超分配Overcommit深入理解】
linux中给R分配内存,Linux内存超分配Overcommit深入理解

文章插图
的意思是操作系统承诺给进程的内存大小超过了实际可用的内存 。一个保守的操作系统不会允许 ,有多少就分配多少,再申请就没有了,这其实有些浪费内存,因为进程实际使用到的内存往往比申请的内存要少,比如某个进程()了200MB内存,但实际上只用到了100MB,按照UNIX/Linux的算法,物理内存页的分配发生在使用的瞬间,而不是在申请的瞬间,也就是说未用到的100MB内存根本就没有分配,这100MB内存就闲置了 。
下面这个概念很重要,是理解 的关键:(或)针对的是内存申请,内存申请不等于内存分配,内存只在实际用到的时候才分配 。
Linux是允许 的,只要你来申请内存我就给你,寄希望于进程实际上用不到那么多内存,但万一用到那么多了呢?那就会发生类似“银行挤兑”的危机,现金(内存)不足了 。Linux设计了一个OOM 机制(OOM = out-of-)来处理这种危机:挑选一个进程出来杀死,以腾出部分内存,如果还不够就继续杀…也可通过设置内核参数 vm.