- 博客(18)
- 收藏
- 关注
原创 Linux 内核内存管理:从初始化到页面回收
页帧分配器根据内存区域的空闲页数与三个水位线(min、low、high)进行判断:当空闲页低于 min 值时,表示内存非常紧张,内核会让分配进程直接执行回收(direct reclaim);释放过程中,如果找到对应的“伙伴页”也处于空闲状态,内核会自动将它们合并为更高阶块,从而减少内存碎片,这是伙伴算法的核心特性之一。当内存紧张、页面分配失败时,Linux 内核会启动内存回收机制,从最近最少使用(LRU)的页面中回收可释放内存。与页框基址相加,得到最终的物理地址,进而访问内存中的数据。
2025-04-11 09:25:21
600
原创 Paper Read——Memtis: Efficient Memory Tiering with Dynamic Page Classification and Page Size Determi
快速层中实际被访问的页面比例。
2025-03-19 14:59:37
607
原创 内存管理之页面迁移
页面迁移系统调用,可以迁移一个进程所有页面到指定的内存节点上。该系统调用在用户空间该系统调用除了用在NUMA系统中,也可以用在和。
2025-03-14 11:41:02
794
原创 Paper Read——Nimble Page Management for Tiered Memory Systems(ASPLOS ‘19)
现有研究普遍假设操作系统能充分利用硬件带宽,但实验表明(如图2),单页迁移吞吐量仅为40MB/s,远低于硬件19.2GB/s的跨节点带宽。即使迁移512个页(等效于2MB大页),吞吐量也仅为750MB/s(硬件带宽的5%)。的目标是将这些页面移动到较慢的内存中,以避免将来从磁盘重新调入的高昂成本。因此选择将这些页面保留在非活跃列表中,使其成为从快速内存中迁移出去的候选者。快速内存中有可用容量,慢速内存的活跃列表中的页面将被迁移到快速内存中。例如,迁移透明大页(THP)而非基页,能将迁移操作减少512倍。
2025-03-04 19:35:25
634
原创 容器的内存资源限制
* 私有的 memcg ID,用于标识超出 cgroup 生命周期的对象 *//* 统计的资源 *//* 适用于 v1 和 v2 */......:用来统计内存消耗,判断是否需要oom killer杀掉进程来释放内存:用来记录更详细的RSSPageCache内存开销RSS:应用程序所使用的内存,进程实际占用的物理内存大小PageCache:为了操作系统快速访问磁盘而留在内存中的缓存,必要时候可以释放给进程RSS使用。
2025-03-04 19:31:51
664
原创 Paper Read——FlexMem: Adaptive Page Profiling and Migration for Tiered Memory
温页(Warm Pages):介于冷页与热页之间,具有潜在升温可能但近期访问频率较低的页面。MEMTIS将温页定义为热阈值前一档(静态范围失效:如Silo案例所示,温页的分布可能随时间动态变化。例如:初始阶段:温页集中在低档位(bin_1bin_5中后阶段:温页迁移至高档位(bin_5bin_6过度降级风险:固定温页范围可能导致近期可能升温的页面被错误降级,引发后续回迁开销。
2025-02-24 11:13:09
978
原创 内存管理之匿名页面生命周期
当系统面临内存压力时,会将部分不活跃的数据从物理内存转移到swap分区,从而释放更多可用内存空间。匿名页面刚分配会加入LRU链表的头部,在活跃链表移动一段时间后会到链表尾部,进程关闭或退出,会扫描这个进程所有的VMA,清除这些VMA,清除VMA上面所有的映射,相关页面会被释放。匿名页面换入交换分区后,如果应用程序需要读写这个页面,会发生缺页中断,PTE的。位显示该页面不在内存中,但PTE不为空,说明页面在交换分区中,会调用。链表,释放该页面,该匿名页面状态被写入交换分区。表示页面已经分配了交换分区,
2025-01-03 11:38:42
561
原创 内存管理之RMAP
用户PTE是指用户进程地址空间和物理页面建立映射的PTE,不包括内核地址空间映射物理页面时产生的PTE。页面在迁移或者交换到磁盘之前,必须找到哪些进程使用了这个页面,解除这些映射的用户进程PTE。
2024-12-29 11:14:52
784
原创 内存管理之page数据结构
表示页面被多少个PTE映射,有多个用户进程地址空间同时映射到一个物理页面的情况,函数由于申请页锁,如果页锁被其他进程占用,就会睡眠等待。为0,表示只有父进程映射到页面。大于0,表示除了父进程还有其他进程映射到这个页面。加入LRU,页面被kswapd使用,判断页面是否有映射到用户PTE,判断。为-1,表示没有PTE映射到页面。应该为0,然后设置页面的。主要用在RMAP系统中。初始状态下,空闲页面的。映射到其他进程PTE,返回page数据结构中。page数据结构成员。
2024-12-25 22:02:59
371
原创 Paper Read——NOMAD: Non-Exclusive Memory Tiering via Transactional Page Migration(OSDI ‘24)
维护影子页的目的是帮助页面降级,如果母版页(即性能层上的页)未被修改,则可以通过页面重新映射实现快速或高效的页面降级。TPM 使用 Linux 自带的内存跟踪机制,如图所示,除了 Linux 内存跟踪中的非活动和活动 LRU 列表之外,TPM还维护一个单独的。NOMAD 的页面不可访问的持续时间在步骤❹和步骤❼/❽之间,明显比 TPP 中的短(在步骤❶和步骤❼之间可能有多次尝试)。NOMAD通过引入单向页面影像机制,使性能层的部分页面在容量层中保留影像副本,从而有效减少内存压力下页面迁移的开销。
2024-12-18 10:27:37
813
原创 《深入理解Linux进程与内存》学习笔记——性能统计负载
这种方法在实际计算的时候只需上一个时间的平均数即可,不需要保存所有瞬时负载。越靠近现在的时间点,权重越高。高分辨率定时器定时将每个CPU上的负载数据汇总到全局瞬时负载变量。两种状态进程的数量,也就是用户空间中R和D两种状态的task数。采用指数加权移动平均来计算过去1、5、15分钟的平均负载。是长期存在的数据,在刷新进程数时,只刷新变化的量。函数进行处理,负载的计算是在这里完成的。是平均负载计算的核心,获取当前瞬时负载。将每一个核的利用率加起来,通过。更新系统时间,更新的时间存储在。添加到全局瞬时负载值。
2024-12-18 10:23:14
345
原创 Paper Read——Exploring the Design Space of Page Management for Multi-Tiered Memory Systems
利用DCPMM作为DRAM和SSD之间的一个新层级。英特尔DCPMM提供了两种类型的分层内存系统,分别可以分为硬件辅助和软件管理模式。在硬件辅助模式下,DCPMM作为主内存暴露给软件,而DRAM则作为硬件管理的缓存,不为软件所见。内存控制器会自动将频繁访问的数据放入DRAM缓存,而将其他数据保留在容量较大但较慢的DCPMM中。展示了本研究中使用的系统组织。该系统有两个CPU插槽,每个插槽上都附有一个DRAM节点和一个DCPMM节点。整个物理地址空间由DRAM和DCPMM节点共同组成。
2024-12-03 22:43:34
746
原创 Paper Read——Tiered Memory Management: Access Latency is the Key!
由于不同层级内存访存性能的差异,现有的分层内存管理系统使用了多种内存迁移技术尝试优化系统的吞吐和时延,但是它们都假定访问默认内存层级(硬件标明的内存访问时延最低的层级)的时延总是优于额外内存层级,因此总是把最热的页面放进默认层级。根据上面计算的每层访问延迟,用平衡访问延迟的原则决定页面迁移方向:如果默认层访问延迟小于备用层,则将热页面从备用层提升至默认层;否则,将热页面从默认层降级到备用层。”的原则迁移页面,将页面转移到访问时延更低的层级中,最终平衡时默认和额外层级的时延基本相同,从而动态地调节系统访问。
2024-11-12 20:53:28
840
原创 内存管理——分层内存
如果此时 CPU 已开始使用远端内存,而本地节点的内存已经恢复充足,为了提升系统性能,内核将启动一种称为 NUMA 平衡(NUMA Balancing)的机制。可以定期唤醒内核回收线程进行回收,或者在从 Buddy 分配器分配物理内存时,如果可用物理内存低于水位线,则直接触发回收。系统结合 CFS 调度子系统,在进程调度运行前遍历用户进程的地址空间,识别其中使用远端节点内存的部分,并将相应页表标记为。冷页的特征是页表中的。中,从降级节点分配新物理页,将冷页内容拷贝至该页,并更新页表以映射到新的物理页。
2024-11-11 21:34:44
985
原创 页面交换——swap机制
在内存管理中,当匿名页面被写入交换分区后,其对应的物理内存就会被释放,而虚拟地址空间的映射依然保留。这意味着该页面的内容被存储在交换分区中,但物理内存被释放,页面的状态成为仅存在于交换分区的虚拟页面。当应用程序试图访问这个已经被换出的页面时,会触发缺页中断,因为页表条目中的present位显示该页面不在物理内存中,但页表条目中仍保留了该页面在交换分区中的索引信息,这种索引信息称为交换槽(swap slot)。操作系统根据这些信息,通过函数将该页面从交换分区中读取回物理内存,然后更新页表条目,将。
2024-11-05 22:30:46
1145
原创 《深入理解Linux进程与内存》学习笔记——内存硬件原理
该图是CPU的总架构图,CPU有两个内存控制器(IMC),每个内存控制器上都有一个DDR PHY,DDR PHY是连接DDR内存条和内存控制器的桥梁。每个DDR PHY有三个DDR4通道,每个通道有两个内存插槽,可以连接2条DIMM。DIMM是现代最常用的内存模块规格,即双列直插式内存模块。
2024-10-22 11:53:13
943
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人