Azure Load Testing のスケジュール実行機能で設定可能な一番短いスパンでスケジュールされたロードテストを実行してみた
いわさです。
Azure Load Testing は Microsoft Azure のフルマネージドなロードテストサービスです。
先月のアップデートでスケジュール実行がサポートされました。
特定の時間のワークロードスパイクをステージング環境で発生させるとか、エンジニアが待機できないが深夜に負荷発生を予約させたいとか、いくつかユースケースが考えられそうです。
私はロードテストリソースの VUH が残っていたので有効活用したいなと考えていました。
そこで今回は Always On を有効化できない App Service に対して定期リクエストを送信する用途で使えないか確認してみることにしました。
スケジュール機能の有効化
スケジュールは Azure Load Testing 一括ではなく、テストごとに設定が可能です。
まず設定済みのテスト詳細にアクセスします。
テスト詳細画面からスケジュールを追加することができます。
複数のスケジュールが設定できそうにも見えるのですが、ひとつのテストに設定できるスケジュールはひとつまでです。
スケジュールの追加
テスト内容の構成を踏襲する形となるので、設定できる内容は「いつ定期実行するか」くらいです。
スケジュールにあわせて負荷を動的にしたりとか、そういうのは出来ません。
なので、もし月曜日だけ負荷を高くして、他の曜日はほどほどにしたい。みたいな時は複数のテストを用意してそれぞれでスケジュール設定を行う形となります。
次のように開始日とスケジュールのパターン、いつまでスケジュールを有効化させるかを指定します。
デフォルトは「繰り返さない」で、これはワンショットの負荷テスト実行を予約させる目的で使うことができます。
定期的なパターンの選択肢
毎週や毎月を選択した場合は曜日を指定した実行が出来ます。
毎週や毎月の場合の曜日選択
毎月の場合であれば日付の指定も可能です。
毎月を選択した場合の日付指定
一番短く設定できそうなのは「毎時間」な感じがしますね。
ここからだと最小で 1 時間間隔でに実行が出来そうです。
毎時間
ただし、Cron 式も使うことが出来て、この場合だと実は分単位での指定も可能だったりします。
今回の私の場合だとこちらが使えそうです。
Cron
最小1分から指定できる感じなのですかね。公式ドキュメントを見ても記載が見当たらないです。
5 分ごとに実行するように次のように指定してみます。
Cronで5分ごと
しかし、設定しようとすると次のようにエラーとなりました。
エラーメッセージから、どうやら最小10分間隔での指定が可能なようです。
5分ごとを設定したときのエラー
スケジュール実行される様子
スケジュールが設定されると次のように設定内容と、次回いつ実行される予定なのかが確認できます。
スケジュールが設定されている様子。スケジュールをこれ以上追加できない
また、「繰り返さない」以外のスケジュールの場合だとスケジュールを一時停止させることができます。その場合ステータスが Pause となります。
次はスケジュールからテストが実行された様子です。
トリガーが従来の「手動」ではなく「スケジュール済み」となっていることがわかると思います。
スケジュールトリガーから実行された
今回 10 分ごとに 10 回まで繰り返すようなスケジュールとしました。1 回目開始のまた 10 分後に 2 回目が開始されました。期待どおり動いています。
10分後に2回目のスケジュール実行が開始された
ちなみに、終了日を過ぎたり反復回数を超えるとスケジュールが削除されます。
今回だと 10 回のスケジュール実行が完了後にスケジュールが削除されていました。
さいごに
本日は Azure Load Testing のスケジュール実行機能で設定可能な一番短いスパンでスケジュールされたロードテストを実行してみました。
最小で 10 分間隔から実行が可能でしたが、1 テストあたり設定できるスケジュールは 1 つまでです。
単純なスケジュールであれば問題なさそうですが、複雑なスケジュールシナリオを作りたい場合は複数のテストを組み合わせるのが良さそうです。