Twitter昨日宣布開源Rezolus,這是一種高分辨率遙測代理,旨在發(fā)現(xiàn)性能異?,F(xiàn)象和利用率峰值,這些異?,F(xiàn)象和峰值通常都太短暫,難以通過常
Twitter昨日宣布開源Rezolus,這是一種高分辨率遙測代理,旨在發(fā)現(xiàn)性能異?,F(xiàn)象和利用率峰值,這些異?,F(xiàn)象和峰值通常都太短暫,難以通過常規(guī)觀察和系統(tǒng)指標來捕獲。Rezolus有助于量化工作負載,提供數(shù)據(jù)以推進優(yōu)化,并且已經(jīng)用于診斷運行時的性能問題。Twitter已經(jīng)在Rezolus上運行了一年多。
“Rezolus提供了一系列信號,以幫助我們理解細粒度的運行時行為。我們發(fā)現(xiàn)它對理解和優(yōu)化性能特別有幫助”,Twitter工程師Brian Martin在博客文章中寫道,“通過單一代理,我們可以從各種來源獲得遙測。據(jù)我們所知,沒有其他開源項目能夠在單個軟件包中展現(xiàn)如此全面的洞察力。”
根據(jù)Martin的說法,Rezolus誕生于對了解細粒度時間尺度上的系統(tǒng)性能的需求。在運行非常高吞吐量的綜合基準測試時,Twitter工程師們有時會遇到短暫的性能異常,但現(xiàn)有的遙測技術(shù)采樣率相對較低,因此未能反映出這些異常狀況。
這是因為,根據(jù)采樣定理,采樣率必須至少是最短脈沖持續(xù)時間的兩倍,以便準確地反映爆發(fā)的強度,而大多數(shù)遙測都會產(chǎn)生一個微小的時間序列。相比之下,Rezolus可以在更加精確的時間尺度上精確測量性能下降的情況。
Rezolus允許配置采樣率,因此開發(fā)人員可以將分辨率與尖峰長度匹配,并且不會消耗過多的資源。在10Hz采樣時,它能夠反映出200毫秒或更長時間的連續(xù)突發(fā),足以滿足Twitter上的大多數(shù)服務(wù)。同時,在這一條件下它只占用不超過15% CPU和60MB內(nèi)存。
可切換的插件采樣器使Rezolus能夠從各種來源收集遙測,包括來自Linux kernel源的計數(shù)器和儀表,以獲得有關(guān)CPU使用率、網(wǎng)絡(luò)利用率和磁盤利用率的遙測。這些采樣器還可根據(jù)需要進行不同配置。
最后,Martin寫道:“開源Rezolus標志著該項目的一個重要里程碑,我們希望Rezolus對Twitter之外的其他人也有用,并期待圍繞它建立一個社區(qū)。”(xplanet)