AWS DevDay Tokyo 2018 LT大会に「AWSを用いたWebサービスの負荷試験のTips」というテーマで参加してきました
9月にLTのCFPの公募があり、これはいい勉強になるだろうということで応募したら通ったのでわたわたしながら準備していました。
以下、とっちらかっていますが、自分用のメモ兼補足です。
- JMeterが同時に1000スレッドを立ち上げたらフリーズした件
- JMeterはJava製の負荷試験用ツールなんですが、2~3GHzの1つのクライアントだと同時に300~600くらいまででWebサーバの場合は例外*1とのことですが、約3GHzの仕事用MBPだとこの辺で止まりました。メモリじゃなくてクロック数書いた方がよかったかもです
- 実際のテストケースでは、一度に立ち上げるスレッド数を制限して、かわりに短いテストシナリオを短時間でたくさんループして1分あたりのスレッド数*2を増やしています
- 1分あたりに送りたいリクエスト数 / 10 を6秒間で送れば1分間で目標のリクエスト数が送れます! 的な
- JMeterはテストシナリオを繰り返し実行する場合、各ループの間でファイルの読み込んでいる位置を共有できます(2週目は1週目の続きから読む、みたいな)
- 古いんですが、考え方としてはこの辺も参考にしてました JMeter の利用方法(1) – Ramp-up、スレッド数、ループ回数の誤用 | 株式会社ケイズ・ソフトウェア
- 1分あたりに送りたいリクエスト数 / 10 を6秒間で送れば1分間で目標のリクエスト数が送れます! 的な
- 負荷用クラスタの構成あたりの話について
- 3/10の量のリクエストが送れるかどうかのテストをしていた際に心配していたこと
- なぜEC2を利用しているのか
- 負荷試験用環境のセットアップについて*5
- ストレージ容量が4桁GiBになってくるとバックトラック(弊社の試験時にうまくいかず。。)がうまくいかないこともあるみたいですね
- 書いていない工夫としてはバッチの結果が入っているRedisがあって、そのデータを用意するため、バッチの実行時間のAuroraのスナップショットとバッチ実行後のRedisのスナップショットを用意していました
- 試験当時はAuroraが停止できなかったのでクローンでインスタンス立ち上げた後停止させるわけにはいかなかったので。。
現場からは以上です。
あわせて読みたい
*1:https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.pdf
*2:JMeter(に限らないかもですが)での同時に動かすスレッド数はだいたい同時にアクセスしているユーザ数みたいな感じ
*3:https://aws.amazon.com/jp/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2
*4:https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.pdf
*5:質問されたのですが、試験環境のセットアップも自分でやってました。だいなみっく!