EVE Onlineは、古いアーキテクチャの性質と大規模な時間シミュレーションのため、分散監視に非従来型のアプローチを採用している。すべてのスパンを送信してからトレースの最後に保持するかどうかを決めるのではなく、プラットフォームはトレースの開始時点からサンプリングを行い、動的に変化するサンプルと決定論的なサンプルを組み合わせている。目的は、シミュレーションを遅らせたり監視データの請求額を増やしたりすることなく、分析可能なシステムの全体像を維持することだ。
CCP GamesのNicholas Herringは、InfoQで公開された記事の中でこの実験を紹介し、EVE Onlineが地域ごとに分離されたサーバーではなく、すべてのプレイヤーを収容する1つの共有宇宙で動作していることを説明した。同社の旧システムと、Quasarとして知られる新しい環境は、毎秒約3万件のメッセージを交換している。また、プラットフォームにはC、C++、Python、SQLによる数百万行のコードが含まれており、新たな中央集約型監視レイヤーの導入自体が運用上の課題になる。
なぜプラットフォームは遅延サンプリングを採用しなかったのか?
決定はパフォーマンスと既存システムの制約に関連していた。EVE Onlineの一部は論理プロセッサ1基上でStackless Python 2.7を使用して動作している。そのためチームは、スパンを完全に抽出して中央処理地点へ送り、そこで処理することが、シミュレーション自体に悪影響を及ぼす可能性があると判断した。また、遅延サンプリングにはスパンを1か所に集約する必要があり、集約経路や接続が停止するとシステムの大部分が見えなくなる可能性がある。
一方、開始時点でのサンプリングでは、各コンポーネントがローカルで判断できる。特定の部分が劣化した場合、チームはシステム全体の可視性を失うのではなく、それらの部分がデータを送信する能力の違いから問題の場所を推測できる。
決定論とEMAの組み合わせ
古いシステムでは、コストとパフォーマンスへの影響を抑えるため、決定論的なサンプリングを使用している。一方、Quasarの新しいコンポーネントでは、protobufメッセージの種類や出現頻度などのキーを監視する指数移動平均、つまりEMAのアルゴリズムを利用している。メッセージの発生頻度が高いほどサンプリングレートを下げ、まれなメッセージにはより大きな出現機会を与える。
この手法は、大量の弾丸の発射や艦船の外観変更など、繰り返し発生するイベントのノイズを削減するのに役立つ。しかしチームはこれだけに依存していない。重要なイベントの一部は古いシステムから発生し、少なくとも1回は確実に表示する必要があるためだ。EMAを複数のインスタンスに分散すると、記事が「高水位標」と呼ぶ状態が生じる。これは、インスタンス数、キー空間、メッセージレートが増加した後には容易に下げられない、データ量の実用的な最低限度である。
実際には何が変わるのか?
この実験は、監視の調整がトレースツールの選択から始まるのではなく、チームが測定したいイベントの性質を理解することから始まると示している。CCP Gamesはフィーチャーフラグを使い、特定の領域、艦船、キャラクターについて一時的に監視を強化したり、重要度の低い領域の監視を減らしたりしている。また、サンプルレートを表示し、イベントの実際の規模を推定するツールにも依存している。生の数値が宇宙全体を表しているかのように読み取ることはしない。
プラットフォームは、Quasarのある設定で1日あたり約6,000万件のイベントを使用し、利用可能な割り当ての約90%を目標としていた。これにより、必要に応じて集中的な監視を実行しながら、コスト超過のリスクを抑えられる。しかしこの柔軟性には運用上の規律が必要だ。記事では、監視フラグを有効にしたまま忘れたため、支出の増加に関するアラートが発生した事例にも言及している。
注意すべき制約
このアプローチは、遅延サンプリングの利点をすべて提供するわけではない。チームは、成功と失敗の比率を同じ方法で後から制御できないため、イベントが非常にまれな場合、サービスレベル指標が過度に敏感になる可能性がある。また実験からは、デスクトップクライアント内でサンプリングの判断を行うと重要な相互作用が隠れる可能性があることも明らかになった。そのためチームは、判断をバックエンド内の信頼できるネットワークへ移すことを検討している。
実務上の結論は、開始時点でのサンプリングが常に優れているということではない。現実の制約によっては、決定論、EMA、一時的な有効化を組み合わせた手法の方が、コストの高い中央集約型アーキテクチャより適している可能性があるということだ。そしてこの手法の価値は、何を監視する価値があるのかをチームが定義し、コストの高水位標を理解し、重要なイベントの各種類から少なくとも1つのサンプルを維持できるかどうかにかかっている。
ニュースの出典
InfoQ - Architecture Articles
原文を開く ↗