• xiaobang
    2020-02-06
    请问像Java这类跑在vm上的语言该怎么做itlb优化呢?

    作者回复: Java因为跑在JVM里面,除非去修改JVM,否则程序员/运维能够控制的比较有限。但还是可以看情况尽量使用大页面。JVM的启动有一些大页面相关的参数。

    
     1
  • 我来也
    2020-01-15
    长见识了,居然能优化到这种地步。
    
     1
  • feihui
    2020-02-04
    大页面最大的缺点在于对于小程序上会造成内存浪费

    作者回复: 如果程序一定要大页面,的确会造成浪费。
    如果让操作系统去管理,比如用THP,那么浪费的不会太大。THP会根据情况自适应。

    
    
  • 钱晓明
    2020-01-17
    文中提到“链接器脚本将根据访问顺序,优化二进制文件中的函数布局”,请问这个脚本基于什么方式优化函数布局?链接过程可以自己控制吗?

    作者回复: Facebook把一些相关技术开源了,你可以参考下,包括HFsort和Bolt。 https://github.com/facebook/hhvm/tree/master/hphp/tools/hfsort; https://github.com/facebookincubator/BOLT

    
    
  • 钱晓明
    2020-01-17
    请问在linux上不改系统配置,如何手工为应用程序指定大页面呢?

    作者回复: 可以在程序里面调用,比如mmap。参考http://man7.org/linux/man-pages/man2/mmap.2.html

    
    
  • Linuxer
    2020-01-15
    请问文中的指标,什么样的取值算正常,什么样的取值算有问题呢?比如下面我抓的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。

    
    
我们在线,来聊聊吧