推特開源自家的遙測解決方案Rezolus,能擷取高解析度的遙測資訊,讓用戶依照需求配置採樣的頻率,在不使用過多系統資源的情況下,以適合的採樣頻率,捕捉那些無法用一般監控或是指標系統所發現的系統效能異常,以及不尋常的資源使用率尖峰。

量化工作負載有助於診斷執行時的效能問題,進而最佳化系統,而Rezolus提供了一系列訊號,讓使用者獲得高精細度遙測資料,理解系統執行時的狀況。推特提到,他們在執行高吞吐量綜合基準測試時發現,系統存在非常短暫且變化明顯的效能異常,而在他們之前低頻率的遙測採樣技術,並無法有效偵測持續時間僅為10秒左右的異常狀況,因此也讓整體系統效能調校工作變得困難。

Rezolus已經在推特內部使用超過一年,並且發現了不少過去無法偵測出來的問題,像是找出了內部後端伺服器CPU使用率異常滿載的原因,另外也觀察到Memcached伺服器長尾延遲異常上升的狀況,推特提到,大多數的遙測時間間隔都以分鐘計,這對於觀測軟體系統來說,獲得的資訊都太過粗糙,而Rezolus能提供了高解析度的遙測資訊,用戶甚至可以設定取樣頻率為10Hz,以觀測200毫秒或更長時間的資源使用率尖峰,而在這個配置下,Rezolus使用的系統資源也只有15% CPU和60 MB的記憶體。

Rezolus使用採取樣擴充套件,從各種來源收集遙測資訊,用戶可以自由地開啟或是關閉不同的採樣器,另外,Rezolus中也包含了一組可讀取Linux核心效能資訊的採樣器,供用戶存取有關CPU使用率、網路利用率和磁碟使用率等遙測資訊。用戶透過比對Rezolus收集來的硬體與軟體資料,能更深入地了解CPU使用情況,分析諸如每條指令的時脈周期數、快取的命中率,以及分支預測器(Branch Predictor)的效能等。

另一個Rezolus的用途,就是作為應用程式和傳統指標收集器間的代理,在這個模式下,Rezolus能以高頻率取樣應用程式指標,並以直方圖進行預處理,並且將Rezolus取樣到的資料,放進一般指標收集器中,在不需要修改任何伺服器程式碼的情況下,更深入分析Memcache伺服器的流量模式,而這個用法也讓推特捕捉到自家Memcache伺服器異常的流量突發高峰。


Advertisement

更多 iThome相關內容