-
高性能:8-可用于Memory分析的BPF工具【bpf performance tools读书笔记】
- 作者:李伟尚 分类:电脑技术 发布时间:2021-07-10 05:12:00
内核和处理器负责将虚拟内存映射到物理内存。为了提高效率,会在称为页面的内存组中创建内存映射,其中每个页面的大小是处理器的详细信息。尽管大多数处理器也支持更大的容量,但通常有4 KB,Linux称其为 hugepage大页面。内核可以从其自己的空闲列表中为物理内存页面请求提供服务,内核为每个DRAM组和CPU维护这些请求以提高效率。内核自己的软件也通常通过内核分配器(例如slab分配器)从这些空闲列表中消耗内存。 内存页和交换 典型的用户内存页...
内核和处理器负责将虚拟内存映射到物理内存。为了提高效率,会在称为页面的内存组中创建内存映射,其中每个页面的大小是处理器的详细信息。尽管大多数处理器也支持更大的容量,但通常有4 KB,Linux称其为 hugepage大页面。内核可以从其自己的空闲列表中为物理内存页面请求提供服务,内核为每个DRAM组和CPU维护这些请求以提高效率。内核自己的软件也通常通过内核分配器(例如slab分配器)从这些空闲列表中消耗内存。
内存页和交换
典型的用户内存页面的生命周期如图7-2所示,其中列举了以下步骤:
1. 应用程序从内存分配请求开始(例如,libc malloc() )。
2. 分配库可以从其自己的空闲列表中为内存请求提供服务,或者它可能需要扩展虚拟内存来容纳。根据分配库,它将:
1. 通过调用brk() syscall并将堆内存用于分配来扩展堆的大小。
2. 通过mmap() 系统调用创建一个新的内存段。
3. 稍后,应用程序尝试通过存储和加载指令使用分配的内存范围,这涉及调用处理器内存管理单元(MMU)进行虚拟到物理地址的转换。至此,虚拟内存的谎言就暴露出来了:该地址没有映射!这会导致称为页面错误的MMU错误。
4. 页面错误由内核处理,内核建立从其物理内存可用列表到虚拟内存的映射,然后将该映射通知MMU以供以后查找。现在,该过程占用了额外的物理内存页面。进程使用的物理内存量称为其驻留集大小(RSS)。
5. 当系统上的内存需求过多时,内核页面输出守护程序(kswapd)可能会寻找可用的内存页面。它将释放三种类型的内存中的一种(尽管只有(c)如图7-2所示,因为它显示了用户内存页面的生命周期):
1. 从磁盘读取但未修改的文件系统页面(称为“由磁盘支持”):可以立即释放这些页面,并在需要时简单地重新读取。这些页面是应用程序可执行的文本,数据和文件系统元数据。
2. 已修改的文件系统页面:这些是“脏”的,必须先写入磁盘,然后才能释放它们。
3. 应用程序内存页面:由于它们没有文件来源,因此被称为匿名内存。如果正在使用交换设备,则可以先将它们存储在交换设备上来释放它们。将页面写到交换设备称为交换(在Linux上)。
内存分配请求通常是频繁的活动:对于繁忙的应用程序,用户级别的分配每秒可能发生数百万次。加载和存储指令以及MMU查找更加频繁。它们每秒可能发生数十亿次。在图7-2中,这些箭头以粗体显示。其他活动相对较少:brk()和mmap()调用,页面错误和页面退出(较亮的箭头)。
page-out daemon页面输出守护程序
定期激活页面输出守护程序(kswapd)以扫描非活动和活动页面的LRU列表,以寻找可用的内存。如图7-3所示,当空闲内存越过低阈值时它将被唤醒,而当空闲内存越过高阈值时将回到睡眠状态。
kswapd协调后台页面调出;除了CPU和磁盘I/O争用外,这些不应直接损害应用程序性能。如果kswapd无法足够快地释放内存,则会超过可调的最小页面阈值,并使用直接回收;这是释放内存以满足分配条件的前台模式。在这种模式下,分配阻塞(停顿)并同步等待页面被释放。
猜您喜欢
- Steam连不上网?这5个原因可能是你的死..2024-04-07
- 鼠标驱动更新后仍无法动?揭秘你可能..2024-04-06
- 百度网盘网页版无法启动客户端?这可..2024-04-05
- 谷歌访问助手用不了?你可能不知道的..2024-04-05
- Windows PowerShell文件夹可删除吗?解密一..2024-04-04
- QT5Core.dll丢失?别担心,这可能是由这..2024-04-04
相关推荐
- 迅雷磁力链接前缀是什么..2023-01-16
- 投影机无法播放视频的解决方法 投影..2023-10-12
- 惠普笔记本可以升级win11吗 惠普电脑怎..2022-10-26
- 台式机电脑显卡怎么看..2021-02-12
- 蓝牙耳机只有一边响,烦恼别担忧,解..2023-12-16
- 重设Win7网络:找回丢失的网络连接..2023-12-19