Ganglia 的 RRD 模組是瓶頸嗎?
我想在很多機器上監控很多指標,並且從 Graphite 網站上,我注意到 ganglia 的 RRD 組件可能會從以下常見問題解答中強加可伸縮性問題,解釋為什麼首先發明了耳語。如果問題還沒有解決(我喜歡ganglia2的webapp),不知道有沒有辦法使用gweb2讀取耳語數據。
“編寫whisper 的第二個原因是性能。RRDtool 非常快,實際上它比whisper 快得多。但是RRD(在編寫whisper 時)的問題是,RRD 只允許您將單個值插入到一次數據庫,而whisper被寫入允許一次插入多個數據點,將它們壓縮成一個寫入操作。這在高負載下顯著提高性能的原因是因為Graphite對許多文件進行操作,並且具有如此小的正在執行的操作(這裡寫幾個字節,那裡寫幾個等等)瓶頸是由I/O 操作的數量引起的. 考慮 Graphite 每分鐘接收 100,000 個不同的度量值的場景,為了維持負載,Graphite 必須能夠每分鐘將那麼多數據點寫入磁碟。但是假設您的底層儲存每分鐘只能處理 20,000 次 I/O 操作。使用 RRD(當時 Whisper 寫的時候),沒有機會跟上。但是使用 Whisper,我們可以繼續記憶體傳入的數據,直到我們為給定的指標積累了 10 分鐘的數據,然後代替執行 10 次 I/O 操作來寫入這 10 個數據點,whisper 可以在 1 次操作中完成。我一直提到“在編寫耳語時”的原因是因為 RRD 現在支持這種行為。然而,只要第一個問題仍然存在,Graphite 就會繼續使用耳語。”
耳語常見問題中提到的已解決的問題稱為“RRDCacheD”。是的,可以根據http://sourceforge.net/apps/trac/ganglia/wiki/rrdcached_integration將 ganglia 配置為使用它,這將大大提高 ganglia 的 I/O 性能。