6

(ほぼ) リアルタイムのグラフ Web システムに Graphite を使用しようとしています。ただし、グラファイトを 1 秒の更新レートよりも高速化することはできないようです。最終的には 100 ミリ秒の更新が必要です

FAQ を読むと、グラファイトが高速のように聞こえますが、これは非常に誤解を招くものであるか、グラファイトを高速化する方法を理解していません。

ウィスパーのタイミング情報は UNIX タイムスタンプを使用しているようです

Graphite はどの程度スケーラブルですか?

CPU の観点から見ると、Graphite はフロントエンドとバックエンドの両方で水平方向にスケーリングします。つまり、ミックスにマシンを追加するだけでスループットを向上させることができます。また、バックエンド マシンが失われても最小限の量のデータが失われ (そのマシンがメモリにキャッシュしていたものは何でも)、負荷を処理するのに十分な容量が残っていればシステムが中断されないという意味で、フォールト トレラントです。

I/O の観点から見ると、負荷がかかると、Graphite は多数の異なるファイルに対して多数の小さな I/O 操作を非常に高速に実行します。これは、Graphite に送信された個別の各メトリックが独自のデータベース ファイルに格納されているためです。これは、RRD の上に構築されたツール (draraw、Cacti、Centreon など) の数と同様です。実際、Graphite は当初、ストレージに RRD を使用していましたが、根本的な制限が発生して新しいストレージ エンジンが必要になりました。

大容量 (数千の個別のメトリックが分刻みで更新される) には、優れた RAID アレイが必要です。発生する多数の小さな書き込み操作にディスクが追いつかない場合、Graphite のバックエンドは着信データをキャッシュします (各データ ポイントは数バイトにすぎませんが、ほとんどのディスクは 1 秒あたり数千回を超える I/O 操作を実行できません彼らは小さいです)。これが発生すると、Graphite のデータベース エンジンである whisper により、carbon は一度に複数のデータ ポイントを書き込むことができるため、書き込み可能になるまで余分なデータをメモリにキャッシュしておくという犠牲を払って全体のスループットを向上させることができます。

グラフはどのくらいリアルタイムですか?

とても。各時間間隔で受信するメトリックの数が、ストレージ システムが I/O 操作を実行できるレートよりもはるかに多く、大量のデータ ポイントがストレージ パイプラインにキャッシュされている場合でも、負荷が高くなります (説明については、前の質問を参照してください)。 )、Graphite は引き続きリアルタイム グラフを描画します。秘訣は、Graphite webapp がグラフを描画する要求を受け取ると、ディスクと事前保存キャッシュ (複数のバックエンド サーバーがある場合は分散される可能性があります) から同時にデータを取得し、2 つのソースを結合することです。リアルタイムグラフを作成するためのデータ。

また、ここでは秒数のみが表示され、小数点以下のポイントは表示されません: http://graphite.readthedocs.org/en/latest/config-carbon.html および from and until must be a time specification conforming to the AT-STYLE time specification describedここ: http://oss.oetiker.ch/rrdtool/doc/rrdfetch.en .html . http://graphite.wikidot.com/url-api-reference

それで、それは何ですか?グラファイトは速いですか?それとも、大規模なデータセットを処理するのが速いだけですか - 視覚的に表示するためのパケット データの簡単に使用できる Web レシーバーを探しています - グラファイトは優れたソリューションのように思えましたが、すべてを構成して実行したので、たくさんの時間

ありがとう!

4

1 に答える 1