理解 Google SRE 书中的示例

理解 Google SRE 书中的示例

我目前正在阅读Google 的 SRE 书籍,这是一篇非常有趣的文章。

在第 6 章“监控分布式系统”中,有一个解释如何选择适当测量的部分。

我不明白作者在解释测量粒度很重要时给出的例子。我们可以读一下:

收集每秒的 CPU 负载测量值可能会产生有趣的数据,但这种频繁的测量值的收集、存储和分析成本可能非常高。如果您的监控目标要求高分辨率但不需要极低的延迟,您可以通过在服务器上执行内部采样,然后配置外部系统来收集和汇总随时间或跨服务器的分布情况来降低这些成本。

你可能会:

  1. 记录每秒的当前 CPU 利用率。
  2. 使用 5% 粒度的存储桶,每秒增加适当的 CPU 利用率存储桶。
  3. 每分钟汇总这些值。此策略可让您观察短暂的 CPU 热点,而不会因收集和保留而产生很高的成本。

有人可以解释一下“5%粒度”部分吗?

答案1

5% 粒度部分意味着您有 20 个不同的计数器。

每秒查看内核的 CPU 使用时间累计。如果使用率在 0 到 5% 之间,则增加第一个计数器。如果使用率在 5 到 10 之间,则增加第二个计数器。等等。如果使用率在 95% 到 100% 之间,则增加最后一个计数器。

例如,如果内核显示已使用 CPU 810.91 秒,而一秒前显示为 810.83 秒。您就会知道前一秒的使用率为 8%,也就是 5% 到 10% 之间的区间。

这是一个示例,具体细节当然取决于实际要求,如果您想在多 CPU 系统上执行这样的操作,您必须决定是否需要每个 CPU 的测量或系统范围的测量。

相关内容