Atlas Stream Processing は、 階層に従ってストリーム プロセッサごとにリソースを割り当てます。リソース割り当てとコストが固定されることで予測可能性が得られ、システム設計プロセスが簡素化されます。このガイドを使用して、配置を計画する際に、どの階層がストリーム処理ワークロードに最も適しているかを理解してください。
リソース割り当て
各階層は、処理能力、メモリ、帯域幅、並列処理、および Apache Kafka ソースを持つプロセッサの場合には、 パーティションを固定して割り当てます。
階層 | vCPU | RAM(GB) | 帯域幅 (MB) | 最大並列処理 | ソースKafkaパーティションの制限 |
|---|---|---|---|---|---|
SP 2 | 0.25 | 0.5 | 50 | 1 | 32 |
SP 5 | 0.5 | 1 | 125 | 2 | 64 |
SP 10 | 1 | 2 | 200 | 8 | 無制限 |
SP 30 | 2 | 8 | 750 | 16 | 無制限 |
SP 50 | 8 | 32 | 2500 | 64 | 無制限 |
ワークロードの選択
各階層の異なるリソース割り当ては、プロジェクトの異なるステージと規模に適しています。
階層 | ユースケース |
|---|---|
SP 2 | 開発、 試用版 リソース要件が限られている単純なワークロードをサポートできる、最もコストの低いオプション。 |
SP 5 | 開発、基本的な本番環境の配置 より複雑な計算を使用する場合でも、 低スループットの本番タスクに適した低コストのオプション。 SP5 プロセッサは、基本的なフィルタリング、プロジェクション、変更ストリーム処理をサポートできます。 |
SP 10 | メインストリームの本番環境への配置 本番環境ワークロードのベースライン。 SP10 以上は、より高いレベルの並列処理、無制限のKafkaパーティショニング、または lookup や join などのデータ豊富操作を必要とするパイプラインを対象としています。 |
SP 30 | 複雑な本番環境の配置 メモリ集中型のステートメント操作用に設計された高性能オプション。 SP30 は、長時間のウィンドウ、複数の検索、および増やすでデータを増やすために大容量のRAMバッファを必要とするステージを使用するパイプラインをサポートします。 |
SP 50 | エンタープライズスケールの本番環境 高スループット ストリームと広範な変換ロジック向けに設計された最もパフォーマンスの高いオプション。 SP50 プロセッサは、大規模な並列処理を必要とする操作やコンピューティング集中型のワークフローに適しています。 |
Considerations
適切な階層を選択する際には、次の要素を考慮する必要があります。
初期化サージ
ストリーム プロセッサは、通常の操作中よりも初期実行中に多くのリソースを必要とする場合があります。例、プロセッサが大規模な Atlasコレクションに対して $initialSync を実行する場合、そのプロセッサは同期中に重い I/O と計算をサポートする必要があります。
このような需要の上昇を対応するには、一時的に高い階層を選択し、同期が完了し、プロセッサが新しい変更ストリームイベントのみを消費するように移行したときにプロセッサを増やすします。
パイプライン ロジック
集計パイプラインライン ロジックは、CPU とRAM消費のプライマリ ドライバーです。
- Windows: 長時間続くウィンドウでは、移動中に保持するRAMがより多く消費されます
- ドキュメント。
- カスタムロジック: Javascript
$functionステージまたは複雑なグループ化 - ロジックにより、各メッセージの計算要件が増加します。
- カスタムロジック: Javascript
- 複合複雑さ: 追加のステートメントまたは計算が複雑なステージ
- リソース需要の潜在的な変化がより大きくなります。冗長キャパシティーを維持することで、消費量が急増しても一貫したスループットが確保されます。
インフラストラクチャ
ネットワークまたはストレージに接続する点に、ストリーム プロセッサのオーバーヘッドが増加します。
- ソースまたはシンク密度: からの読み取りまたは並列化されたへの書込み
- ソースまたは シンク(パーティションを持つApache Kafkaトピックなど)では、I/O 要件が増加します。
- データ強化:
$lookup$httpsステージと ステージおよび 操作 - ストリーム内のデータを増やすには、 ネットワーク帯域幅 と接続プーリング が必要です。
- データ強化:
- 調整: 多くのソースを統合する複雑な配置で
- と シンクの場合、ストリーム プロセッサはこれらの各ノード間でデータ フローをルーティングするハブとして機能できます。このようなプロセッサでは、SP30 および SP50 階層のより高いスループットのメリットが得られます。
逆に、高スループットのストリーム処理ワークロードでは、接続されたリソースの需要が増加する可能性があります。
- Atlas への影響: 大ボリューム、ストリームからの並列 I/O
プロセッサは、ソースまたはシンク Atlas クラスターの読み取りまたは書込みキャパシティーを超えることができます。これによりプロセッサのレイテンシが増加するだけでなく、それらのクラスターに依存する他のワークロードがボトルネックになる可能性もあります。
システム全体のパフォーマンスを確保するには、Atlas クラスターを、対話するプロセッサに比例して増やす。
パフォーマンスとレイテンシ
処理ロジックが単純な場合でも、パフォーマンス目的では上位階層のプロセッサが必要になる場合があります。
- 高スループット: 上位階層プロセッサほど、ストリームのサポートが向上します
- 高いレートで イベントを生成します。
低レイテンシ SLA: 上位階層のプロセッサが提供する高並列処理により、速度が重要な場合にイベントがキューに蓄積されなくなります。特に、SP50 プロセッサは SP30 プロセッサの 4 倍のスレッドを提供します。
- データ暗号化とキャッシュ:
$cachedLookupを使用してデータを増やす場合 - ストリーム間で大規模な静的参照データまたは低速変化参照データを含む場合は、キャッシュに必要なRAM を提供するために上位階層のプロセッサが優先されます。
- データ暗号化とキャッシュ:
- 複雑なシンク: 特定のシンクはよりコストのかかる
- 変換、トランザクション、ファイル管理のオーバーヘッドが含まれます。これらのシンクを使用するプロセッサの場合、上位の階層は一貫したパフォーマンスとレイテンシを確保するのに役立ちます。
スケーリング
Atlas Stream Processing のスケーリングは垂直型です。プロセッサを停止して新しい階層を選択して再起動することで、プロセッサをスケールアップまたはスケール増やすできます。 Atlas Stream Processing チェックポイント により、移行中にデータが失われることはありません。プロセッサのパフォーマンスを定期的に監視し、このガイドに記載されている要素に基づいて階層を調整します。