Skip to content

ノードレイテンシについて#

ノードレイテンシは算出が困難です
直接メッセージの流れを追い、レイテンシを出すのは簡単ではありません。 CARET はいくつかの前提のもと、ノードレイテンシを算出できるようにしています。

callback_chain ポリシー#

コールバックグラフについてもご参照ください。

想定#

  • コールバック間のキューサイズ1を想定
  • 厳密に測定できるのは Single Threaded Executor のみ

長所#

  • ソースコードへの変更が不要
  • 任意のメッセージ型に適用可能

短所#

  • キューサイズが大きい時、レイテンシが小さめに出るケースがある。
  • multi threaded executor では、レイテンシが大きめに出るケースがある。
  • 実装を読み解くのが難しい

ノードレイテンシの定義#

ノードレイテンシの定義#

inherit_unique_stamp ポリシー#

ノードレイテンシの定義#

入出力のヘッダーでマッチングを取り、入力トピックと出力トピックの時刻の差分からノードレイテンシを算出します。

想定#

  • 入出力のタイムスタンプの値でマッチングが取れること(値を書き換えずに、そのまま publish していること)
  • 入出力ともに header をもっていること

長所#

  • ソースコードへの変更が不要
  • キューサイズに依らない

短所#

  • ヘッダーが必要
  • publish 前に stamp=現在時刻としているケースは対応不可

use_latest_message ポリシー#

ノードレイテンシの定義#

各ポリシーの比較#

ポリシーの選び方#

決定木が欲しい

注意点#

測定できないケース 誤った値を算出するケース