Posted at

AZ間のlatencyについて

More than 1 year has passed since last update.

職場でAZをまたいだSQLのlatencyが話題になったので、測ってみました。


前提条件


  • VM-A(t2.micro/ap-northeast-1a)

  • VM-C(t2.micro/ap-northeast-1c)

  • VM-A/Cは同一AMIから作成

  • RDS(MariaDB 10.2.12/db.t2.micro/ap-northeast-1a)


Perl-DBIによるアクセス

DBIを使用して、connect/disconnectだけを1000回ループさせました。

VM-A
VM-C

1回目
1619
8543

2回目
1787
8659

3回目
1641
8678

平均
1682
8626

(単位:msec)

(8626-1682)/1000/2=3.472 msec


mysqlコマンドによるアクセス

参考までに、mysqlコマンドでログイン/exitだけを1000回ループさせました。

VM-A
VM-C

1回目
5237
14552

2回目
5020
14361

3回目
4992
14539

平均
5083
14484

(単位:msec)

(14484-5083)/1000/2=4.701 msec

exitコマンドでsql発行とみなすと接続/SQL実行/切断かもしれないと考えて、/3すると以下。

(14484-5083)/1000/3=3.133 msec

どちらの場合にも、1回あたり2~3msec程度の遅延は計算に入れておいた方がよさそうです。

バッチ処理などで大量のSQLを実行する際にはAZ間通信を考慮して設計しようと思います。