據媒體報道,近日搜索巨頭Google公司宣布推出一種新的技術,可實現(xiàn)對世界級數據中心服務器的監(jiān)控。這一項技術使得Google公司可以監(jiān)控世界范圍內每臺服務器上的每個任務,其最終目的是通過這些數據有選擇對進程進行干預、甚至是關閉該進程讓同CPU上的其它進程得以運行,以實現(xiàn)資源的最優(yōu)化匹配。
Google公司在技術論文中詳細地描述了這一世界級監(jiān)視技術的實現(xiàn)方法,而這也引起了使用大型基于Linux云計算基礎設施的機構的濃厚興趣。
Google公司在論文中對該技術的描繪如下:
性能隔離是云計算的主要挑戰(zhàn)。不幸的是,Linux缺少對共享資源(比如:處理器緩存、存儲器總線等)中性能干擾的防御;這樣的話,公有云中的應用程序將無法避免來自鄰居們的干擾。
CPI方案使用從硬件性能計數器獲得的CPI(cycles-per-instruction,平均指令周期數)數據檢測問題,中斷或者關閉“問題”進程從而達到預期的效果,當然它會根據相同作業(yè)中大量任務數據認知這個任務的反常與否。
本質上講,CPI讓Google可以在集群上萬個CPU核心中隔離單個核心上的單個性能低下任務,對這個任務進行檢查并進行操作,而造成的CPU開銷甚至不到0.1%。它并不需要特殊的硬件支持,唯一的軟件依賴恰是使用Linux。
CPI允許Google收集任何指定指令的預期CPU CPI,從這些數據中分析出標準的資源配置文件,然后使用這些標準的配置文件去幫助網絡巨頭確定哪些任務比一般情況下耗費了更多的CPI,從而解放與這些任務使用相同CPU的其它進程。
Google稱,其絕大多數機器上都運行著多任務。作業(yè)的處理類型分為實時處理和批處理兩種,同時這些作業(yè)由大量的任務組成。Google服務器上96%的任務都會與至少10個的任務組成一個作業(yè),而87%左右的任務會與100或以上的任務組成一個作業(yè)。
但是這些任務可能會相互干擾,導致處理器緩存和內存分配問題,造成應用中的某個任務延時飆升——這正是Google不惜一切代價都想避免的問題。
為了實現(xiàn)任務流下每個處理器的控制,Google使用CPI監(jiān)視所有運行的服務器。通過測量處理器硬件計數器,然后用CPU_CLK_UNHALTED.REF除以INSTRUCTIONS_RETIRED來獲得CPI數據。
通過計算模式下的perf_event工具,Google每分鐘都會收集一個長為10秒周期的數據。系統(tǒng)中總CPU的開銷低于0.1%,并且不會對延時產生影響。
因為集群需要跨大量的平臺運行,CPI的目的在于體現(xiàn)各種平臺下的CPU運行情況。CPI的值通過每臺機器上的agent進行本地分析和測量。agent通常會被給予作業(yè)中任務預期最常見的CPI分布,所以它可以獨立的分析出運行的正常與否。
如果agent發(fā)現(xiàn)有“victim”任務受到影響變得緩慢,它將會每秒一次的對“antagonist”任務進行干涉。agent會使用一個算法來判斷“antagonist”任務的CPU占用增加與“victim”任務的遲緩是否曾在關系,依據的則是指令的周期數。
如果agent識別了一個“antagonist”并發(fā)現(xiàn)它是個批量作業(yè),系統(tǒng)將會“通過CPU hard-capping來強制減少‘antagonist的CPU占用率’”。
鑒于CPI和Omega論文的聯(lián)合作者中都有John Wilkes,Google很有可能是通過Omega(Google大型基礎設施管理系統(tǒng)的一個組件)給agent發(fā)布任務。
“antagonis”任務的配置文件與CPI數據進行的是離線的記錄和存儲,這樣管理員就可以通過Google的主要網絡分析工具Dremel進行查詢。
Google工程師使用Dremel進行性能取證,用以確定“antagonists”任務,在將來他們可能為“antagonists”任務重新制定策略,讓它們在單獨的主機集中運行,然后使用這個調度進度來徹底的避免這個問題。
其中有一個需要改進的方面是處理多個“antagonists”,它將會復雜化算法;另一個則是為capping任務建立的反饋途徑。
論文中寫道:“即使這兩方面還未改善,但是CPI是個強大的、實用的工具。”
使用CPI獲得應用性能可行信息的開銷比Google其它方案來的更少,這里還存在一個被稱為“Google-Wide Profiling”可同時對硬件和軟件性能進行追蹤的平行技術,但是只在Google小范圍的進行使用。
從整體上看,CPI提供的不只是管理,更傾向于讓集群運行的更加穩(wěn)定、效率。如果你在執(zhí)行搜索或者查看Gmail、通過Google服務查找地址時發(fā)現(xiàn)比平常需要更多的時間,那么你可能就會被CPI冷酷及無情的當做是“antagonists”。