首页 > 系统相关 >Linux - 内存回收

Linux - 内存回收

时间:2023-05-08 09:56:12浏览次数:40  
标签:释放 回收 匿名 swap Linux 内存

Linux - 内存回收
内存回收时,会优先释放Inactive(file)中的数据,来满足应用对内存的需求,此时匿名页会增长。匿名页不会被系统直接释放,如果有swap的时候,会把一些inactive(anon)放入swap。如果没有swap,会一直保持在内存中。当然,程序可以通过比如free这些glibc函数,把相关匿名页释放掉,从而释放一些内存。

然后会把active(file)链表中,相对不是经常被调用的缓存放入inactive链表。如果再有新的内存申请,则会重复此过程。直至没有cache可释放的情况下,可用内存仍然不能满足需求,才会触发OOM。

标签:释放,回收,匿名,swap,Linux,内存
From: https://www.cnblogs.com/gaoyuechen/p/17380816.html

相关文章

  • 用CPU来加速你的Linux命令
    在处理大数据的时候我们总会想着一些并行的操作来加速我们的操作,我们的cpu是多核多线程的,但是我们的有些命令却是单线程的命令,不能够进行并行的运算,如:grep、bzip2、wc、awk、sed等等,只能使用一个CPU内核。要想让Linux命令使用所有的CPU内核,我们需要用到GNUParallel命令,下面我......
  • Linux学习 - awk使用
    Linux学习系列文章是生信宝典最开始主推的一块,力图从一个新额视角帮助初学者快速入门Linux系统,熟悉Linux下的文件和目录,文件操作,文件内容操作。而且教程摒弃了完美操作,列举出常见错误和解决方式,管道、标准输入输出解惑Linux下多种信息输出方式。在文件排序和FASTA文件操作中简述......
  • Linux学习 - 常用和不太常用的实用awk命令
    Linux学习系列文章是生信宝典最开始主推的一块,力图从一个新额视角帮助初学者快速入门Linux系统,熟悉Linux下的文件和目录,文件操作,文件内容操作。而且教程摒弃了完美操作,列举出常见错误和解决方式,管道、标准输入输出解惑Linux下多种信息输出方式。在文件排序和FASTA文件操作中简述......
  • #yyds干货盘点#Linux使用者与群组
    Linux使用者身份与群组记录的文件在Linux系统当中,默认的情况下,所有的系统上的帐号与一般身份使用者,还有那个root的相关信息,都是记录在/etc/passwd这个文件内的。至于个人的XX则是记录在/etc/shadow这个文件下。此外,Linux所有的群组名称都纪录在/etc/group内!这三个文件可以说是......
  • Linux 基金会宣布成立 TLA+ 语言基金会
    Linux 基金会宣布成立TLA+基金会(TLAF),以促进TLA+编程语言及其TLA+从业者社区的采用和发展。TLA+基金会的创始成员包括AWS、甲骨文和微软。TLA+(TemporalLogicofActions)是一种用于对程序和系统(尤其是并发和分布式程序和系统)进行建模的高级语言。Linux......
  • Linux 基金会宣布成立 TLA+ 语言基金会
    Linux 基金会宣布成立TLA+基金会(TLAF),以促进TLA+编程语言及其TLA+从业者社区的采用和发展。TLA+基金会的创始成员包括AWS、甲骨文和微软。TLA+(TemporalLogicofActions)是一种用于对程序和系统(尤其是并发和分布式程序和系统)进行建模的高级语言。Linux......
  • Linux 基金会宣布成立 TLA+ 语言基金会
    Linux 基金会宣布成立TLA+基金会(TLAF),以促进TLA+编程语言及其TLA+从业者社区的采用和发展。TLA+基金会的创始成员包括AWS、甲骨文和微软。TLA+(TemporalLogicofActions)是一种用于对程序和系统(尤其是并发和分布式程序和系统)进行建模的高级语言。Linux......
  • linux 内核空间内存分布
    虚拟地址空间划分linux通过宏“PAGE_OFFSET”将4GB的虚拟地址空间(32bit平台)划分成内核地址空间和进程地址空间两部分。“PAGE_OFFSET”的值支持通过Kconfig配置,其默认的值是“0xC0000000”。下面以经典的“PAGE_OFFSET=0xC0000000”来看下linux对虚拟地址空间的详细划分。Linux......
  • 在linux上使用Qt开发动态库项目,怎么只生成一个so文件
     背景:在linux系统上,我们使用Qt开发动态库项目时,会默认生成四个文件:x.so 、x.so.1、x.so.1.0、x.so.1.0.0四个文件,只有一个真实的so库,剩下的三个都是链接文件。我们交付的时候,不可能发一堆文件出去,所以我们需要对Qt项目进行设置,保证输入的只有一个so文件......
  • 特性介绍 | MySQL 测试框架 MTR 系列教程(二):进阶篇 - 内存/线程/代码覆盖率/单元/压力
    作者:卢文双资深数据库内核研发序言:以前对MySQL测试框架MTR的使用,主要集中于SQL正确性验证。近期由于工作需要,深入了解了MTR的方方面面,发现MTR的能力不仅限于此,还支持单元测试、压力测试、代码覆盖率测试、内存错误检测、线程竞争与死锁等功能,因此,本着分享的精神,将其......