# Ganglia [[Matthew L. Massie]]・[[Brent N. Chun]]・[[David E. Culler]] が UC Berkeley で開発したスケーラブルな分散モニタリングシステム([[@2004__Parallel Computing__The Ganglia Distributed Monitoring System - Design, Implementation, and Experience]])。クラスタの連合を対象とした階層設計に基づき、単一クラスタ内は監視デーモン `gmond` によるマルチキャストベースの listen/announce プロトコルで対称的に監視し、複数クラスタは `gmetad` の点対点接続ツリーで連合・集約する。データ表現に XML、データ転送に XDR、履歴データの保存と可視化に RRDtool を用いる。論文発表(2004年)時点で世界中の500以上のクラスタ、9種の OS、6種の CPU アーキテクチャに展開されており、[[PlanetLab]] のような当初想定外だった惑星規模システムへも適用範囲を広げた。 『ウェブオペレーション』3章([[@2011__OReillyJapan__ウェブオペレーション - Chapter 3 インフラとアプリケーションのメトリクス]])では、[[Matthew L. Massie]] 自身が [[Flickr]] での実運用を踏まえて設計思想を解説している。原型は 1999 年、マッシーが個人的に構築したウェブカメラ中継システム「popecam」で直面した「帯域幅・時間分解能・収集頻度」の課題に遡り、その後 UC Berkeley での数千ノード規模クラスタ管理ソフトウェア開発の中で誕生した。設計原則として (1) 収集・集約コストの最小化、(2) マルチキャストによる新規ノード・メトリクスの自動発見とゼロ設定起動、(3) gmond(クラスタ内・UDP・軽量・非信頼性を許容)と gmetad(クラスタ間・TCP・信頼性重視)というタスクに応じたトランスポートの使い分け、(4) 収集インターバル・閾値・時間閾値によるメトリクスごとの暗黙的な優先順位付け、(5) gmetad の階層委譲モデルによる大規模分散集約、が挙げられている。gmetad は揮発性のメトリクスデータを RRDtool のラウンドロビンデータベース(RRD)に保存する。Flickr ではこの Ganglia を、最終デプロイのタイムスタンプをヘッダに追加する変更管理や、Yahoo! Photos から Flickr へのデータ移行時のストレージ消費率モニタリング(移行速度のフィードバック制御)にも活用した。(Source: [[@2011__OReillyJapan__ウェブオペレーション - Chapter 3 インフラとアプリケーションのメトリクス]] §3.6, §3.8, §3.9) 2009年6月の Velocity 2009 講演([[@2009__Velocity2009__10+ Deploys Per Day - Dev and Ops Cooperation at Flickr]])のスライドには、Flickr の「MUD Grid」の Ganglia クラスタレポート画面(WWW Load・CPU・Memory・Network の4象限グラフ)と、アプリケーションレベルメトリクスのグラフ(`id-proc-images-time`、`off-job-queue-global`)が視覚的証拠として提示されている。これは『ウェブオペレーション』3章(2011年)が言葉で説明する Flickr での Ganglia 実運用より2年早い、実際のダッシュボード画面のスクリーンショットである。(Source: [[@2009__Velocity2009__10+ Deploys Per Day - Dev and Ops Cooperation at Flickr]] p.46-50) 10章([[Paul Hammond]] 執筆)は、開発と運用がインフラを共有し始めると気付くシステム連携の例として、Ganglia がアプリケーションコードのメトリクスを追跡していることに触れ、バックグラウンドで処理するタスク数(ジョブキューの滞留状況)をグラフ化したものが障害管理やインフラ計画に役立つと述べる(図10-3)。この情報は、開発と運用が同じインフラを共有していなければ生まれなかったメトリクスの例として位置づけられている。(Source: [[@2011__OReillyJapan__ウェブオペレーション - Chapter 10 開発と運用の協力と連携]] §10.2) ## 関連 - 一次論文: [[@2004__Parallel Computing__The Ganglia Distributed Monitoring System - Design, Implementation, and Experience]] - 開発者: [[Matthew L. Massie]], [[Brent N. Chun]], [[David E. Culler]] - 評価対象システム: [[PlanetLab]] - 実運用ソース: [[@2011__OReillyJapan__ウェブオペレーション - Chapter 3 インフラとアプリケーションのメトリクス]]([[Flickr]] での運用実例) / [[@2011__OReillyJapan__ウェブオペレーション - Chapter 10 開発と運用の協力と連携]](ジョブキューメトリクスの共有例) - 関連概念: [[分散モニタリング]] / [[時系列データベース]]