ノードレイテンシについて#
ノードレイテンシは算出が困難です
直接メッセージの流れを追い、レイテンシを出すのは簡単ではありません。
CARET はいくつかの前提のもと、ノードレイテンシを算出できるようにしています。
callback_chain ポリシー#
コールバックグラフについてもご参照ください。
想定#
- コールバック間のキューサイズ1を想定
- 厳密に測定できるのは Single Threaded Executor のみ
長所#
- ソースコードへの変更が不要
- 任意のメッセージ型に適用可能
短所#
- キューサイズが大きい時、レイテンシが小さめに出るケースがある。
- multi threaded executor では、レイテンシが大きめに出るケースがある。
- 実装を読み解くのが難しい
ノードレイテンシの定義#
ノードレイテンシの定義#
inherit_unique_stamp ポリシー#
ノードレイテンシの定義#
入出力のヘッダーでマッチングを取り、入力トピックと出力トピックの時刻の差分からノードレイテンシを算出します。
想定#
- 入出力のタイムスタンプの値でマッチングが取れること(値を書き換えずに、そのまま publish していること)
- 入出力ともに header をもっていること
長所#
- ソースコードへの変更が不要
- キューサイズに依らない
短所#
- ヘッダーが必要
- publish 前に stamp=現在時刻としているケースは対応不可
use_latest_message ポリシー#
ノードレイテンシの定義#
各ポリシーの比較#
ポリシーの選び方#
決定木が欲しい
注意点#
測定できないケース 誤った値を算出するケース