KEIS BLOGは株式会社ケイズ・ソフトウェアが運営しています。

KEIS BLOG

JMeter の利用方法(4) – タイマによるスループットの制限方法


こんにちは、Apache JMeter の使い方についての4回目です。

今回はいよいよ

  • 定数スループットタイマ
  • スループットシェイピングタイマ(Throughput Shaping Timer)

についての説明に入ります。

まずは定数スループットタイマです。こちらはいたって簡単で、ターゲットスループット(サンプル数/分)に動かしたいサンプル数をセットするだけです。「サンプル数/”分”」なので、10rpsの負荷をかけようと思ったら600をセットすれば良いです。

スレッドプロパティでは、1度に動作するスレッド数を設定します。上記の設定の場合、スレッド数を10にしておけば、最初に10スレッドが立ち上がり、その後は1分間でターゲットスループットの値になるよう処理されていきます。

ではスレッド数を1にした場合はどうでしょう?この場合一度に立ち上げられるスレッドが1個のみなので、1個のスレッド処理が終了次第次のスレッドが立ち上がります。

注意したいのはループ回数です。定数スループットタイマは1分間のサンプル数を設定するだけなので、ループ回数の無限ループにチェックを入れた場合、手動で処理を止めるまで延々とテストを実行し続けることになります。自動的に処理を止めたい場合は、スレッド数やループ回数をしっかり計算して設定しておく必要があるということです。

「Calculate Throughput based on」は基本[all active threads in current thread group]を選択しておけばOKです。

スレッドグループに複数のサンプラーが登録されている場合、ターゲットスループットにセットする値は全てのサンプラーの合計値です。つまり例としてスレッドグループに10個のサンプラーがある場合、上記の設定ですと1秒間にそれぞれのサンプラーが1回実行され、1分間に60回×サンプラー数10=600となります。

次にスループットシェーピングタイマです。スループットシェーピングタイマを利用するためにはプラグインが必要です。プラグインは以下のURLからダウンロードできます。

http://jmeter-plugins.org/

スループットシェーピングタイマはStandard Setに入っています。Standard Setには他にも以前紹介した

  • jp@gc – Response Times Over Time
  • jp@gc – Transactions per Second
  • jp@gc – Active Threads Over Time
  • jp@gc – Composite Graph

などのリスナーも入っていますので、これだけ導入すれば良いでしょう。

スループットシェーピングタイマではrpsのスケジューリングができます。実際の例で説明した方がわかりやすいでしょう。

throughput_shaping_timer

上の例ですと

  1. 1rpsから開始して10秒間で100rpsまで負荷を増加させます。
  2. 100rpsのまま20秒間続けます。
  3. 100rpsから開始して5秒間で150rpsまで負荷を増加させます。
  4. 150rpsから開始して25秒間で0rpsまで負荷を減少させます。

増減は期間(秒数)に比例します。スループットシェーピングタイマの一番の活用方法としては、徐々に負荷を大きくしていくことでどのくらいまで理想のスループットが出るかを確認することが考えられます。徐々に負荷を大きくしていくと、どこかで設定したスループットの値と実際の値に違いが出てくるはずです。またそこでクライアントやサーバ、ネットワークの監視をしておけば、どこが原因で値が落ちているのかが見えてくるはずです。

また、スループットシェーピングタイマは、そこに設定した分の時間が終了すればテストを自動的に終了してくれます。ですので、スレッドグループのループ設定は基本無限ループにしておいても大丈夫です。逆にループ回数をしてしておくと、シェーピングタイマで設定した期間が終了していなくても、すべてのスレッドが終了した時点でテストは終了します。また無限ループかつrpsの値を一定にしておけば、定数スループットタイマと同様の動きをさせて、かつ指定された時間で終了させることができます。ですのでプラグインが導入できない環境(ほとんど無いとは思いますが)でなければ定数スループットタイマを使用せずともスループットシェーピングタイマのみで事足りることが多いかと思います。

この記事に関するご意見、ご感想、ご質問は blog@keis-software.com までよろしくお願いします。

 

【関連記事】
JMeter の利用方法(1) – Ramp-up、スレッド数、ループ回数の誤用
JMeter の利用方法(2) – テスト結果の確認方法
JMeter の利用方法(3) – 負荷テスト中に何を監視するのか?
JMeter の利用方法(4) – タイマによるスループットの制限方法

Performance Testing With Jmeter 2.9
JMeter バージョン 2.10 について
JMeter バージョン 2.11 について