流年不利的社交遊戲服務商Zynga近日在官方部落格宣佈開源zPerfmon——該工具負責監控Zynga數以千計的社交遊戲伺服器。zPerfmon的原始碼目前已經上傳至Github。
包括Facebook、Google、Netflix和Twitter在內的眾多網際網路公司經常會開源自己的開發的工具,但是zPerfmon不同 尋常之處在於其規模:作為單一伺服器系統,zPerfmon每天處理的資料量高達150G,增加1億條資料庫記錄,並能生成“5000萬個檔案和上百種查 看方式。”
zPerfmon不是人們想象的那樣“大量子程式像珍珠一樣輕靈地串綴起來”,而是能夠處理海量不同型別檔案和任務的單一系統,為每個遊戲都提供數十種資料檢視和訪問方式。流程處理速度超快,穩定性和彈性也值得稱道。
Zynga的Philips在部落格中詳細介紹了zPerfmon的技術原理,摘要如下:
作為處理引擎,zPerfmon伺服器的“衝程”為30分鐘,所有30分鐘內的資料都將被分組、切碎。除了檔案外,伺服器還儲存使用者、例項和系統指標資料。所有這些資料都用時間戳賦予鍵值。通過時間戳可以回溯例項數、CPU峰值以及頁面斷鏈和死迴圈等。
伺服器效能監控和故障排查領域已經有大量工具可用,從商業軟體如Splunk到開源軟體如Ganglia,但是很多網際網路公司還是樂於開發自己的產品。這是因為每家公司的系統架構和分析需求都各不相同。例如Facebook就自行開發了至少兩種系統監控工具,其中一個是基於Hadoop的資料倉儲-Operations Data Store,另一個是事實工具Claspin,負責管理Facebook的快取架構。
Zynga用zPerfmon監控其自行建設的zCloud混合雲架 構中的生產伺服器。在公司起步階段,Zynga選擇的是亞馬遜AWS應對暴漲的使用者數,當需求可以預測後,2012年初zynga選擇放棄亞馬遜的AWS 轉向混合雲方案。據Zynga技術長Allan Leinwand介紹,Zynga可以在24小時內部署1000臺伺服器。Allan還把亞馬遜比作“四門轎車”,而Zynga的zCloud則是“運動 型跑車”。