Skip to content

Latest commit

 

History

History
507 lines (297 loc) · 62.8 KB

README.md

File metadata and controls

507 lines (297 loc) · 62.8 KB

💻 总结整理linux内核的内存管理的资料,包含论文,文章,视频,以及应用程序的内存泄露,内存池相关


本repo搜集整理全网Linux内核---内存管理模块相关知识。

所有数据来源于互联网。所谓取之于互联网,用之于互联网。

如果涉及版权侵犯,请邮件至 [email protected] ,我们将第一时间处理。

如果您对我们的项目表示赞同与支持,欢迎您 lssues 我们,或者邮件 [email protected] 我们,更加欢迎您 pull requests 加入我们。

感谢您的支持!

This Repo collects and organizes the whole network Linux kernel -- memory management module related knowledge.

All data comes from the Internet. The so-called take from the Internet, use for the Internet.

If copyright infringement is involved, please email [email protected] and we will deal with it as soon as possible.

If you agree to our project and support, welcome lssues, we, or email [email protected] us, More welcome pull requests to join us.

Thank you for your support.

📜 100篇文章

内存管理(一):硬件原理 和 分页管理

内存管理(二):内存的动态申请和释放

内存管理(三):进程的内存消耗和泄漏

内存管理(四):内存与IO的交换

内存管理(五):其他工程问题以及调优

---------内存管理系列文章---------

内存管理系列一:启动简介

内存管理系列二:创建启动阶段的页表

内存管理系列三:MMU前CPU初始化及打开MMU

内存管理系列四:setup_arch简介(内存管理初始化)

内存管理系列五:alloc_pages从伙伴系统申请空间简易流程

内存管理系列六:伙伴系统之buffered_rmqueue

内存管理系列七:slub初始化

内存管理系列八:slub创建

内存管理系列九:slub申请内存

内存管理系列十:slub回收

内存管理系列十一:slub销毁

内存管理系列十二:vmalloc内存机制

内存管理系列十三:VMA操作

内存管理系列十四:brk

内存管理系列十五:do_page_fault缺页中断

内存管理系列十六:反向映射RMAP

内存管理系列十七:内存池

内存管理系列十八:内存回收之LRU链表

内存管理系列十九:内存压缩算法

内存管理系列二十:内存压缩算法之数据同步

内存管理系列二十一:内存回收入口

内存管理系列二十二:内存回收核心流程

----------英文文章鉴赏----------

Linux: large-memory management histories

Looking at kmalloc() and the SLUB Memory Allocator

Memory Management in OS: Contiguous, Swapping, Fragmentation

Memory Management in Operating System

Operating System - Memory Management

Virtual Memory in OS: What is, Demand Paging, Advantages

Why Do We Need Virtual Memory

----------分割线----------

Linux 内核(5.4.81)—内存管理模块源码分析

glibc2.23 ptmalloc 原理概述

多核心Linux内核路径优化的不二法门之-slab与伙伴系统

尽情阅读,技术进阶,详解mmap原理

浅谈Linux内存管理机制

Linux中的内存管理机制

C++中内存管理之new、delete

malloc和free的实现原理解析

常用寄存器总结

内存碎片之外部碎片与内部碎片

Linux虚拟内存管理,MMU机制,原来如此

一文了解,Linux内存管理,malloc、free 实现原理

内存管理之内存映射

内存管理之分页

内存管理之内核空间和用户空间

Linux 内存占用分析的几个方法,你知道几个?

深入理解 Linux 内存子系统

深入理解 glibc malloc:内存分配器实现原理

图解 Linux 内存性能优化核心思想

一文让你看懂内存与CPU之间的关系

linux内存管理---详解

一文带你了解,虚拟内存、内存分页、分段、段页式内存管理

深入浅出linux内存管理(一)

深入浅出linux内存管理(二)

📀 视频

Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈

内存管理 ---Slab | 内存映射 | kmalloc | vmalloc | 内核源码 | MM | brk

90分钟了解 Linux内存架构--- numa的优势 | slab的实现 | vmalloc的原理

内存分配与回收机制---伙伴算法|slab分析|内存映射|进程虚拟空间|请求调页|写时复制

3种内存泄漏的解决方案--hook|malloc函数|free函数|避免内存泄漏

剖析Linux内核MMU机制---页表原理|高速缓存|TLB工作原理|内存映射|不连续页原理

虚拟内存空间之VMA实战操作

Linux内核内存管理(一)---内存映射|空间管理|ARM32/64页表|slab分配器|malloc

Linux内核内存管理(二)---malloc|mmap|反向映射|缺页中断处理|回收页面|KSM实现|内存漏洞|匿名页面

Linux内核内存管理(三)---Slab机制架构|物理页面|管理区|分配/释放页面

Linux内核之内存页回收---LRU及反向映射?如何异步回收、直接回收?以及回收slab缓存

Linux内核内存管理专题训练营(一)---伙伴系统|slab分配器|vmalloc()|malloc()|TLB|虚拟内存|缺页机制

Linux内核内存管理专题训练营(二)---伙伴系统|slab分配器|vmalloc()|malloc()|TLB|虚拟内存|缺页机制

Linux内核精讲之内存管理---物理内存组织|内核引导|内存映射

Linux物理内存页面分配---kmalloc|slab/slub|页框分配机制

-----西安交通大学内存管理(24讲)提取码1024-----

背景

固定分区分配

连续内存分配

分页

分页硬件和TLB

分段管理

虚拟内存

请求调页

页面置换

页面置换算法

帧分配

颠簸

❓ 面试题

📃 100篇论文

《ARM的虚拟内存管理技术的研究》

《C语言的内存漏洞分析与研究》

《FreeRTOS内存管理方案的分析与改进》

《Linux Memory Management》

《Linux内存管理分析与研究》

《Linux内存管理的设计与实现》

《Linux内核中内存池的实现及应用》

《Linux内核中动态内存检测机制的研究》

《Linux内核伙伴系统分析》

《Linux内核内存池实现研究》

《Linux实时内存的研究与实现》

《Linux操作系统内核分析与研究》

《Memory Management 101: Introduction to Memory Management in Linux》

《Memory Management in Linux》

《Memory Management》

《NUMA架构内多个节点间访存延时平衡的内存分配策略》

《Nginx Slab算法研究》

《TCP_IP协议栈的轻量级多线程实现》

《VC中利用内存映射文件实现进程间通信的方法》

《Virtual Memory Management Techniques in 2.6 Kernel and Challenges》

《Visual C 中利用内存映射文件在进程之间共享数据》

《Linux Physical Memory Page Allocation》

《一个内存分配器的设计和实现》

《一种Linux内存管理机制》

《一种TLB结构优化方法》

《一种优化的伙伴系统存储管理算法设计》

《一种基于虚拟机的动态内存泄露检测方法》

《一种提高Linux内存管理实时性的设计方案》

《一种改进的Linux内存分配机制》

《一种改进的伙伴系统内存管理方法》

《一种跨平台内存池的设计与实现》

《一种高效的池式内存管理器的设计》

《云计算平台中多虚拟机内存协同优化策略研》

《云计算平台中多虚拟机内存协同优化策略研究》

《内存管理机制的高效实现研究》

《分页存储管理系统中内存有效访问时间的计算》

《利用内存映射连续性提高TLB地址覆盖范围的技术评测》

《动态内存分配器研究综述》

《动态存储管理机制的改进及实现》

《基于C 的高效内存池的设计与实现》

《基于C 自定义内存分配器的实现》

《基于Linux内核的动态内存管理机制的实现》

《基于Linux内核页表构建内核隔离空间的研究及实现》

《基于RDMA和NVM的大数据系统一致性协议研究》

《基于RDMA高速网络的高性能分布式系统》

《基于RelayFS的内核态内存泄露的检测和跟踪》

《基于linux用户态可自控缓冲区管理设计与实现》

《基于multimap映射的动态内存分配算法探究》

《基于云计算虚拟化平台的内存管理研究》

《基于内存池的空间数据调度算法》

《多核系统内存管理算法的研究》

《实时系统内存管理方案的设计与实现》

《对linux伙伴系统及其反碎片机制的研究》

《嵌入式实时系统动态内存分配管理器的设计与实现》

《并发数据结构及其在动态内存管理中的应用》

《应用协同的进程组内存管理支撑技术》

《支持高性能IPC的内存管理策略研究》

《有效的C 内存泄露检测方法》

《浅析伙伴系统的分配与回收》

《用户态内存管理关键技术研究》

《申威处理器页表结构Cache的优化研究与实现》

《虚拟化系统中的内存管理优化》

《面向Linux内核空间的内存分配隔离方法的研究与实现》

《页面分配器的研究与实现》

🌌 内存池相关

文章

框架

🍺 内存泄露

🛠 内存管理工具

Valgrind:Valgrind是一个用于构建动态分析工具的工具框架。有一些Valgrind工具可以自动检测许多内存管理和线程错误,并详细分析你的程序。您还可以使用Valgrind来构建新的工具。 Valgrind发行版目前包括7个产品质量的工具:一个内存错误检测器、两个线程错误检测器、一个缓存和分支预测分析器、一个调用图生成缓存和分支预测分析器,以及两个不同的堆分析器。它还包括一个实验性的SimPoint基本块向量生成器。

AddressSanitizer:Google出品的内存检测工具

内存性能指标

指标-工具映射图

工具-指标映射图

分析思路

分析的基本过程

a. 先用 free 和 top,查看系统整体的内存使用情况。

b. 用vmstat及pidstat查看内存变化情况,确定内存问题类型

c. 详细分析,如内存分配分析、缓存/缓冲区分析、具体进程的内存分析

联系专栏

关注微信公众号【后台服务架构师】——【联系我们】,获取本repo最全PDF学习文档!