k6

概要

  • k6はGoで開発されたモダンな負荷試験ツール
  • 軽快なフットワークでインストールが可能
  • JavaScriptで書いたシナリオを実行する形で利用
  • 試験結果は様々な外部システムと組み合わせることが可能

必要スペック

  • ネット上の情報
    • 26000人~29000人分のアクセスを再現するあたりで64GBのメモリを使い切り動かなくなった
    • 1000人オーダーであれば8~16GBのメモリのマシンであっても耐えられそう
    • メモリに余裕のない環境ではマシンスペックの限界を超えたときにGoのランタイムエラーが出力される

計測項目

  • http_req_blocked
  • http_req_connecting
  • http_req_sending
  • http_req_waiting
  • http_req_receiving
  • http_req_duration ... http_req_sending + http_req_waiting + http_req_receiving
  • http_req_failed
  • http_req_tls_handshaking

JavaScript対応状況

  • k6オプション
    • --compatibility-mode=base ... ES5.1+
    • --compatibility-mode=extended ... ES2015(ES6)+
  • ES6対応
  • 但し、k6は実行時に内部でES6からES5に変換している
  • --compatibility-mode=base オプションをつけるとその処理が省かれるので、省コストで実行されるようになる
  • なので、最初からES5ベースで記述するか、ES6ベースで記述したものをツールで変換すると良い

インストール

InfluxDB

  • InfluxDB(DBは k6)に結果出力
    k6 run test.js --out influxdb=http://localhost:8086/k6

Redisとの連携

  • 前の実行結果を使って処理する際に便利!
  • 但し、DBは 0 固定か?
    • 2021/9現在。DB指定できるようにドキュメントに書いているが、実際 DB:1 を指定しても DB:0 にデータが登録されている。

SSL

k6 Documentation

k6/metrics

k6関連プロジェクト

トラブルシューティング

hint="script exception"

その他

hey

Apache JMeter

  • JavaでできているためOSに依存せず、JavaがインストールされているWindows、Mac OSX、Linuxなどで実行可能

Siege

Vegeta

Apache Bench

httperf

WCAT

fwptt

Web ApplicationStress? Tool

  • 提供終了となっている。それなりに使えたのに残念。
  • 後継はWCAT

NeoLoad

WebLOAD

Flood

VSTT

MySQL用


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-06-05 (日) 18:38:12 (691d)