当前位置:   article > 正文

基于eBPF的开源工具Kindling之page-fault事件可观测性实现机制_ebpf统计page fault

ebpf统计page fault

什么是page fault

Linux内核中,每一个进程都有一个独立的虚拟地址空间,而进程本身感知不到真正的物理内存的存在(比如某进程感知到的内存是连续的,但是实际上它被分配的内存是物理内存中分散的空间)。MMU(内存管理单元)负责完成对于这种虚拟地址-物理内存地址的转换工作。Linux为每一个进程维护了一张页表,用于记录虚拟地址和物理内存地址之间的关系,并在进程运行时实时进行地址转换从而使得进程访问到真正的物理内存。

 图1 内存管理​单元MMU

而我们要提到的page fault便是在这种场景下产生的,page fault大致可以分为三类:

  • major page fault:进程要访问的页面不在真正的物理内存中,可能需要从磁盘中载入(比如Linux开启了swap机制,内核通过LRU页面置换算法将页面置换到了磁盘中暂存),这个时候将会产生一个major page fault。

 图2 swap页面置换机制

  • minor page fault:进程要访问的页面在物理内存中,但是MMU还没有建立进程的虚拟地址和相应物理地址的映射关系,这个时候就会触发soft page fault

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/930466
推荐阅读
相关标签
  

闽ICP备14008679号