22 | 系统案例:如何提高iTLB(指令地址映射)的命中率?
该思维导图由 AI 生成,仅供参考
为什么要关注指令地址映射的不命中率?
- 深入了解
- 翻译
- 解释
- 总结
文章总结:提高iTLB(指令地址映射)的命中率对于优化CPU性能至关重要。iTLB不命中率高会导致CPU运行效率低下,因为TLB的访问延迟比内存页表高得多。本文介绍了iTLB的作用和重要性,以及针对高iTLB不命中率的解决方案。作者分享了通过二进制程序的编译优化和采用大页面的部署优化来提高iTLB命中率的有效策略。这些优化策略可以显著降低CPU处理未命中iTLB的性能损失,提高指令执行速度。 此外,文章还介绍了两种优化方案:一是通过编译优化来减少iTLB不命中率,包括使用FDO(Feedback-Directed Optimization)和优化编译器选项等方法;二是采用大页面来减少覆盖二进制文件的工作集所需的TLB条目数,从而提高iTLB命中率。这两种方案可以独立工作,也可以整合起来,以获得最佳的优化结果。 为了自动化整个优化过程,文章提出了一个包含程序剖析、编译链接和加载部署三大模块的解决方案。通过这一流程,可以实现对服务的自动优化,使得该解决方案成为能被几乎所有服务简单采用的方案,而且几乎是免维护的解决方案。 最后,文章还分享了在Facebook生产环境中采用这一优化策略的实际效果,包括应用程序和服务器系统性能的提升,以及iTLB不命中率和CPU使用率的降低。这些数据展示了优化方案的实际效果,为读者提供了有益的信息和实践案例。 总的来说,本文通过介绍iTLB命中率优化的重要性和有效策略,为读者提供了在优化CPU性能方面的有益信息。
《性能工程高手课》,新⼈⾸单¥59
全部留言(8)
- 最新
- 精选
- xiaobang请问像Java这类跑在vm上的语言该怎么做itlb优化呢?
作者回复: Java因为跑在JVM里面,除非去修改JVM,否则程序员/运维能够控制的比较有限。但还是可以看情况尽量使用大页面。JVM的启动有一些大页面相关的参数。
2020-02-061 - Joe Black请问在linux上不改系统配置,如何手工为应用程序指定大页面呢?
作者回复: 可以在程序里面调用,比如mmap。参考http://man7.org/linux/man-pages/man2/mmap.2.html
2020-01-171 - Linuxer请问文中的指标,什么样的取值算正常,什么样的取值算有问题呢?比如下面我抓的mysql的输出算正常吗? 117,811,688,709 dTLB-loads (100.00%) 804,095,370 dTLB-load-misses # 0.68% of all dTLB cache hits (100.00%) 772,145,652 iTLB-loads 1,179,670,139 iTLB-load-misses # 152.78% of all iTLB cache hits 125.454839041 seconds time elapsed
作者回复: iTLB的数据肯定不对(load 不可能小于miss);应该是系统(CPU)的问题。 查了一下,好像有些CPU(包括Broad well)的iTLB-loads 被错误的映射到 ITLB_MISSES.STLB_HIT; iTLB-load-misses映射到ITLB_MISSES.MISS_CAUSES_A_WALK。
2020-01-151 - 蚂蚁内推+v想问下老师:文中提到的“编译优化找到Hot Text区域,然后通过链接器脚本来优化二进制文件中的函数布局”,对于C++程序有对应的工具或具体方法么?
作者回复: 你用Google搜一下,应该有些相关技术和介绍。你也可以参考一下我们的一篇论文,里面有很多参考文献。
2020-04-01 - Joe Black文中提到“链接器脚本将根据访问顺序,优化二进制文件中的函数布局”,请问这个脚本基于什么方式优化函数布局?链接过程可以自己控制吗?
作者回复: Facebook把一些相关技术开源了,你可以参考下,包括HFsort和Bolt。 https://github.com/facebook/hhvm/tree/master/hphp/tools/hfsort; https://github.com/facebookincubator/BOLT
2020-01-17 - 钱开眼了,这个层次的优化,远远超出了一个业务研发的能力范围,平时的主要从程序逻辑、架构设计、调整组件参数的方式来搞,这种指令级的无能为力。 人外有人,天外有天,老师厉害。2020-03-054
- 我来也长见识了,居然能优化到这种地步。2020-01-151
- stevensafin能不能给个实际的案例2023-09-06归属地:广东