7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

K6 VS Gatling 負荷テスト能力を比較するとK6のほうが優れている

Last updated at Posted at 2021-08-09

結論

  • 少なくとも、リクエスト時間が十分短い軽量なワークロードでは、gatlingよりも、K6のほうが処理が早い。
  • gatlingでは400TPS程度までしか出せず、エラーになる条件でも、K6は1000TPS以上出すことができる。
  • Gatlingであれば工夫して複数インスタンス同時実行しなければならない状況でも、K6ならば1インスタンスのみの実行で収まるケースが増えると思われるため、K6のほうが利便性が高い

ツール

テスト条件

  • Azure Container Instance上に公開した、簡単なカウンター加算アプリのエンドポイントに対し、
    インターネット経由で各負荷テストツールでリクエストを行う。
  • ワークロードは、getリクエストとputリクエストが50:50の割合になるようにする
  • 各負荷テストツールの実行環境は、gitlab-runner(Docker Executor)。

アプリコード

テストコード

  • K6

  • Gatling

結果

K6は最大1000TPSに達するまでリクエストしても、エラーが発生しなかった。
また、putリクエストの回数に等しいだけ、カウンターアプリケーションの加算が正常に発生したことを確認できた。 

Gatlingは2回実行したが、いずれも数十秒経過でKOが発生した。
原因は2000msを超過したことによりタイムアウトである。タイムアウトは同様の傾向を示していた。
タイムアウトを外すことは可能ではあるが、原因がレスポンス遅延である。
K6であれば所定時間内にレスポンスできている点やACIメトリクスから、ACI側のボトルネックはないことを確認している。
K6では最も悪いケースで300ms、大半のリクエストが60ms以内に解決できているため、そもそも負荷出し性能に劣ると判断した。

Gatling(1回目)

image.png

Gatling(2回目)

image.png

K6

件数が一致するかどうかの確認以外は、下記ページに記載。

image.png

image.png

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?