Monitoring

了解 Google SRE 書中的範例

  • February 2, 2019

我目前正在閱讀Google 的 SRE 書籍,這是一本非常有趣的讀物。

在第 6 章 - 監控分佈式系統中,有一節解釋瞭如何選擇合適的度量。

我不理解作者在解釋測量粒度很重要時給出的範例。我們可以閱讀:

收集 CPU 負載的每秒測量值可能會產生有趣的數據,但收集、儲存和分析這種頻繁的測量值可能非常昂貴。如果您的監控目標需要高解析度但不需要極低的延遲,您可以通過在伺服器上執行內部採樣來降低這些成本,然後配置外部系統以隨時間或跨伺服器收集和聚合該分佈。

你可能會:

  1. 每秒記錄目前的 CPU 使用率。
  2. 使用 5% 粒度的儲存桶,每秒增加適當的 CPU 使用率儲存桶。
  3. 每分鐘匯總這些值。此策略允許您觀察短暫的 CPU 熱點,而不會因收集和保留而產生非常高的成本。

有人可以解釋“5% 粒度”部分嗎?

5% 的粒度部分意味著你有 20 個不同的計數器。

您每秒鐘查看核心使用的 CPU 秒數的累積。如果使用率在 0% 到 5% 之間,您將增加第一個計數器。5到10之間是第二個櫃檯。等等。在 95% 到 100% 之間,你會增加最後一個計數器。

例如,如果核心說已經使用了 810.91 CPU 秒,而一秒鐘前它說的是 810.83。您會知道過去一秒的使用率為 8%,這將是從 5% 到 10% 的儲存桶。

這是一個範例,具體細節當然取決於實際要求,如果您想在多 CPU 系統上執行類似的操作,您必須決定是需要每個 CPU 測量還是系統範圍測量。

引用自:https://serverfault.com/questions/952028