这些难搞的内存问题你都懂了吗?
💡
原文中文,约8800字,阅读约需21分钟。
📝
内容提要
本文介绍了Linux内核内存管理的相关知识,包括进程内存的申请和分配过程、OOM时的情况以及系统申请的内存存放位置和回收方式。
🎯
关键要点
- 本文介绍了Linux内核内存管理的基本知识,包括进程内存的申请和分配、OOM情况、内存存放位置和回收方式。
- 进程内存的申请和分配过程涉及exec函数、mmap函数和内存分配器的使用。
- OOM(内存用光)是系统在内存耗尽时的自我保护机制,会选择一个进程杀死以释放内存。
- OOM的选择因素包括进程占用内存、运行时间、优先级等,可以通过调整oom_adj参数干预。
- 系统申请的内存分为cache和普通物理内存,内存的映射方式包括共享文件映射和私有文件映射。
- 手动回收内存可以通过操作drop_caches文件实现,系统也会自动进行内存回收。
- tmpfs文件系统是基于内存的,能够限制使用内存大小,且与共享内存机制相关。
- 内存的自动释放机制通过kswapd线程周期性检查内存使用情况,进行内存回收。
- 总结了Linux内存管理的关键点,包括进程地址空间、内存回收方式和OOM处理机制。
➡️