Twitter開源高分辨率遙測工具Rezolus,輕松捕獲系統性能異常瞬間

2019-08-21 趙一軒 開源中國
瀏覽

Twitter昨日宣布開源Rezolus,這是一種高分辨率遙測代理,旨在發現性能異常現象和利用率峰值,這些異常現象和峰值通常都太短暫,難以通過常規觀察和系統指標來捕獲。Rezolus有助于量化工作負載,提供數據以推進優化,并且已經用于診斷運行時的性能問題。Twitter已經在Rezolus上運行了一年多。

“Rezolus提供了一系列信號,以幫助我們理解細粒度的運行時行為。我們發現它對理解和優化性能特別有幫助”,Twitter工程師Brian Martin在博客文章中寫道,“通過單一代理,我們可以從各種來源獲得遙測。據我們所知,沒有其他開源項目能夠在單個軟件包中展現如此全面的洞察力。”

根據Martin的說法,Rezolus誕生于對了解細粒度時間尺度上的系統性能的需求。在運行非常高吞吐量的綜合基準測試時,Twitter工程師們有時會遇到短暫的性能異常,但現有的遙測技術采樣率相對較低,因此未能反映出這些異常狀況。

這是因為,根據采樣定理,采樣率必須至少是最短脈沖持續時間的兩倍,以便準確地反映爆發的強度,而大多數遙測都會產生一個微小的時間序列。相比之下,Rezolus可以在更加精確的時間尺度上精確測量性能下降的情況。

Rezolus允許配置采樣率,因此開發人員可以將分辨率與尖峰長度匹配,并且不會消耗過多的資源。在10Hz采樣時,它能夠反映出200毫秒或更長時間的連續突發,足以滿足Twitter上的大多數服務。同時,在這一條件下它只占用不超過15% CPU和60MB內存。

可切換的插件采樣器使Rezolus能夠從各種來源收集遙測,包括來自Linux kernel源的計數器和儀表,以獲得有關CPU使用率、網絡利用率和磁盤利用率的遙測。這些采樣器還可根據需要進行不同配置。

最后,Martin寫道:“開源Rezolus標志著該項目的一個重要里程碑,我們希望Rezolus對Twitter之外的其他人也有用,并期待圍繞它建立一個社區。”