ストリーミング環境でのパスマッチング
以下では、ロケーション ライブラリを使用して Flink 環境で GPS トレースをパスマッチングする場合の速度パフォーマンス評価について説明します。
テストデータ
パフォーマンステストの入力データはのストリームです SDII Messages
。各データには 7 つの位置の推定値 (GPS トレースポイントとも呼ばれます ) が含まれています。 この跡はドイツ全土を網羅している。 ディストリビューションでは、レベル 10 HERE Tile ごとに少なくとも 1 つのトレースが存在する可能性が高くなります。 つまり、マップマッチャーはドイツのすべてのタイルについてマップ データをロードする必要があります。
入力ストリームは、 1 秒あたり約 4K のメッセージを生成します( 1 秒あたり約 28K ポイント)。 この設定では、ストリームが不足しないようにすることができます。
地図の一致
このcarPathMatcher
アルゴリズムは 、高レベル API の一部です。 このアプリケーションは、基本的 にストリーム処理アプリケーションの例です。 このパフォーマンステストでは、 1 つのスーパーバイザと 1 人のワーカーを持つストリーム パイプラインでアプリケーションが実行されます。いずれの場合も、 1 つの CPU 、 7 GB の RAM 、 8 GB のディスク容量の最小セットアップが可能です。
測定
このテストでは、 1 秒あたりに処理された GPS ポイントの数がカウントされます。 これには、入力ストリームからの読み取り、パスマッチング、および出力ストリームへの書き込みが含まれます。 測定値は、最初のウォームアップフェーズ後の安定した処理速度を表します。このフェーズでは、すべてのマップタイルがロードされます。
さらに、このテストでは、ストリーミング・アプリケーションに必要な 1 か月のコスト($ /€)が明らかになりました。
注
このコストには、入力ストリームからの読み取りと出力ストリームへの書き込みが含まれますが、入力および出力ストリーミングカタログ自体のコストは含まれません。
テスト結果
ウォームアップ後の安定した地図の一致速度は、 1 秒あたり約 9K の GPS ポイントです。
このような最小のパイプラインを 1 か月運用するための概算コスト :
説明 | $/€ |
プラットフォームコンピューティングコア | 187.2 |
プラットフォームコンピューティング RAM | 201.6 |
プラットフォーム転送パイプライン IO | 234.5 |
プラットフォーム転送データ IO | 1.5 |
これらの数値は、継続的に実行されているテストパイプラインの測定値に基づいています。
マップ データ転送データの IO コストは、プラットフォームが 1 回だけダウンロードされ、インメモリキャッシュに保持されるため、無視できます。
その他の考慮事項
パフォーマンスは、パイプラインに適用されている CPU の数に応じてリニアに拡張されます。 ただし、多くの場合、理論的な使用例では、スループットのニーズではなく、マップをキャッシュするためのメモリのニーズによって、パイプラインの設定が選択されます。 ドイツのトレースに一致するマップに必要なデータは、最小パイプラインによって提供される 7GB の RAM にのみ収まります。 このテストではシリアル処理のみを行うため、 1 つのメッセージを処理する時間はスループットと逆になります。 結果として、 GPS ポイントあたり 125 µ s になります。これは、 7 つの GPS ポイントを持つメッセージあたり 0.9ms です。
カスタム Grafana ホームのパフォーマンスを監視する上記のストリーム処理アプリケーションを使用して、独自のテストデータでテストを再現できます。