【问题标题】:Cache hit ratio effect on performance缓存命中率对性能的影响
【发布时间】:2022-08-07 22:07:48
【问题描述】:

我目前正在阅读 Brendan Gregg 的第二版系统性能,并且对第 2 章中关于缓存的部分有疑问。这部分将缓存命中率定义为

hit ratio = hits / (hits + misses)

它继续说缓存命中率和“性能”(对于系统性能的一些假设度量)之间的关系是非线性的。具体来说,

98% 和 99% 之间的性能差异远大于 10% 和 11% 之间的性能差异。这是一个非线性配置文件,因为缓存命中和未命中之间的速度差异 - 两个存储层在起作用。差异越大,斜率变得越陡。

我不太明白这种关系中的非线性从何而来。为了向自己解释这一点,我编造了以下示例。考虑以下情况,我们通过某个函数f 对性能进行建模,其中f 的值越低表示性能越好。

f(hit) = 10
f(miss) = 100

即未命中比命中要贵 10 倍。假设命中率为 0,该系统的“预期”性能将为(0*10) + (1*100) = 100。 0.01 的命中率(1% 的命中)产生(.01*10)+(.99*100) = 99.1。最后,0.02 的命中率(2% 的命中率)产生(.02*10) + (.98*100) = 98.2。 AFAICT,这是一个线性关系。我错过了什么?

谢谢

    标签: performance math caching system


    【解决方案1】:

    我读了同一本书后也有同样的问题,现在我已经回答了我的问题,所以我会回答它。

    性能与命中率呈非线性关系,因为执行时间和性能是不同的东西。

    正如您所写,带有f(例如(0*10) + (1*100) = 100)的方程在命中率上是线性的。 但是,它实际上并不代表性能,而是平均执行时间。 性能是相对的,在比较两种性能时,我们使用执行时间的倒数.

    这个逆是看似线性但实际上是非线性行为的根源。

    我的母语不是英语,如果阅读困难,请见谅。 希望我的回答对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-01
      • 2019-12-12
      • 2013-09-20
      • 1970-01-01
      • 2020-04-05
      • 1970-01-01
      相关资源
      最近更新 更多