田中ブログ

さいたまに住んでいる男です。仕事はSESでプログラムを書いてることが多いです。聖地巡礼、日々の生活、技術的なことを書いていこうと思います。

JMeterで一定時間・一定の負荷をかける

JMeterを触ることがあったのでメモ。

例えば、1分間に30リクエストを10分間流し、ついでにリクエストも3種類くらいあるようなとき用の内容になります。
方法として以下の2つが思い浮かびました。

①定数スループットタイマーを利用する
②スレッドをたくさん立てる

後者は、定数スループットタイマーを知らないときに考えていたものなので、①がオーソドックスな方なのかなと思いました。

①定数スループットタイマーを利用する

JMeterの部品の値を以下の役割で利用しました。

  • スレッドグループのループ回数 → 10分流すことを実現するために設定
  • 定数スループットタイマー → 1分間30リクエストを実現するために設定

jmxの構成だと以下のような感じ(記憶で書いているので誤記ってたらすみません。)

スレッドグループ ※ループ回数100で設定。スレッド数での調整でも。
  - コントローラ(ランダム実行)
    - サンプラーA
    - サンプラーB
    - サンプラーC
  - スループットタイマー ※分間30リクエストで設定

②スレッドをたくさん立てる

これはJMeterの実行でリソース使いすぎるのではという話もあるがどうなのか?
JConsoleというので、JMeterのスレッド数を見てたけど使われたスレッドは破棄されていったように見えるが。。

jmxの構成は以下のような感じ。

スレッドグループA ※スレッド数100、RumpUpPeriod 600秒
  - サンプラーA
スレッドグループB ※スレッド数100、RumpUpPeriod 600秒
  - サンプラーB
スレッドグループC ※スレッド数100、RumpUpPeriod 600秒
  - サンプラーC

スレッドグループの開始タイミングを遅らせれば、3種類のリクエストが飛ばされるタイミングもずらすことができるだろう。


以上