AWS IoTのレイテンシーについて、前回の記事を書いた後、継続して計測していたところ、顕著な変動があることが分かったので、追加投稿します。
計測方法
- 前回の記事と同様にPublish/Subscribe間のLatencyを計測しました。
- 測定間隔は前回の4秒から10分に変更し、約5日間計測しました。
項目 | 内容 |
---|---|
ツール実行環境 | ap-northeast-1 t2.micro Instance |
使用ツール | nodejs版AWS IoT device sdk |
使用モジュール | examples/device-example.jsにタイムスタンプを追加して使用 |
レイテンシー算出方法 | Publish時、Subscribe時それぞれでタイムスタンプを記録して、その差を使用 |
計測条件
項目 | 前回 | 今回 |
---|---|---|
実行間隔 | 4秒 | 600秒 |
実行回数 | 200回x2 | 710回x2 |
結果
-
それぞれのデバイスで計測値が顕著に変化する現象が見られました。
-
レイテンシーが変化するタイミングと同タイミングに、デバイス=サーバ間のコネクション再接続が発生しているケースが見られました。
-
前回の計測期間を通した平均レイテンシーは、50msとなり、前回の平均22msから倍増しました。
-
今回の計測期間では、平均値が12ms〜89msの間で大きく変動する結果となりました。
-
以下のチャートでは、対向する2つのデバイスのそれぞれを赤と青に色分けして示しています。
-
Publish/Subscribe レイテンシー推移
- Publish/Subscribe レイテンシー集計結果
前回 | 今回 | |
---|---|---|
平均(Sec) | 0.022 | 0.050 |
90パーセンタイル(Sec) | 0.032 | 0.087 |
- Publish/Subscribe レイテンシーヒストグラム
レイテンシーの変動要因は、いろいろ想像できますが、このレベルの変動はあるものだと考えるのが良さそうです。
通常の使い方では、さらにAWSに往復するための回線遅延が加わるので、それも考慮する必要があります。
何れにしても、Publish/Subscribeの基本的な使い方では、ユーザの操作感などに顕著に影響するような顕著な遅延は見られませんでした。
今後チャンスがあったら、より大規模なケースも試してみようと思います。