負荷テストにおけるシステムの性能は「スループット」という指標で表します。「スループット」とは、秒間あたりのトランザクション数です。単位は「tps(Transaction Per Second)」となります。
限界スループットは一度の負荷テストでは探すことができません。同時接続数(以下、スレッド数)を段階的に上げていき、そのスループットとのその相関関係から把握していく必要があります。この記事では、システムの性能限界となる限界スループットの確認方法についてまとめています。
↓ 動画解説はこちら ↓
限界スループットの探り方
イメージをつけやすくするために
- 同時に何人の人の言葉を聴き分けることができるかを調べる
という実験を例に説明していきます。
キャパシティに余裕がある場合
「同時に何人の人の言葉を聴き分けることができるか」を調べるためには、実際に聞き分けてみるのが近道です。
まず一人の人に発声してもらいます。すると即時に「あ」と聞き分けることが可能でした。横軸の同時に発声した人数「1」、縦軸の聞き取れた人数「1」へプロットします。聞き取りにかかった時間についてもプロットします。
次に二人の人に同時に発声してもらいます。今度もの即時に「い」「う」と聞き分けることができました。一人の時と同じように、同時に発声した人数「2」聞き取れた人数「2」へプロットしていきます。
同じ要領で五人の人の言葉を聞き分けることができました。この時点では五人の声は聞き分けることができることがわかりましたが、最大で何人の人の声を聞き分けることができるかはまだわかりません。
余裕がなくなってくると
六人に同時に発声してもらったときによく聞きとることができませんでした。少し考えたのちに正解したのは五人分の言葉でした。
七人の場合も同様に、より時間はかかりつつも、五人以上の言葉を聞き取ることができません。グラフは次のようになりました。
今まで直線的に上がっていたグラフが横ばいになりました。この横ばいになった部分が同時に聞き取れる人数の限界です。聞き取りにかかった時間についてみてみても、限界を迎えてから発声人数が増えるとより多くの時間がかかっています。
限界を超えると
さらに同時に発声する人数を増やしていくと急激に聞き取れる人数が減ってきました。完全に限界を超えてしまったようです。
負荷テストにおける限界スループットの探り方
負荷テストにおける限界スループットの探り方も「同時に何人の人の言葉を聴き分けることができるかを調べる」と同じ要領で行うことができ、データの推移も似たものとなります。
グラフの違いは次の通りです。
- 同時に発声した人数=スレッド数
- 聞き取れた人数=スループット
- 聞き取りにかかった時間=平均応答速度
グラフからもわかる通り、限界スループットを確認するためには、スレッド数を変化させつつ何度も負荷テストを実施する必要があります。
スレッド数を完全に固定して負荷テストを進めるケースもあります。具体的根拠がある条件設定であれば問題ありませんが、
- 限界スループットを見つける
- チューニング後の性能向上を確認する
ということはできません。複数回の負荷テストを実施して関連づけるのは大変な作業になりますが、意義のあるテストをするためにぜひ覚えておきましょう。
まとめ
限界スループットはシステムの限界を示す指標です。それを探すためには負荷を変化させつつスループットの変化を見定める必要があります。
このことを理解していないと、
- ボトルネックが見つけられない
- チューニング後の性能向上が確認できない
ということになるので注意してください。
参考.
全体的な負荷テストの進め方が気になる方は、「負荷テストの進め方」をご覧ください。
効率的に限界スループットを確認したい方は、「JMeterを使った負荷テストツール」の記事もおすすめです。