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
- k6オプション
- --compatibility-mode=base ... ES5.1+
- --compatibility-mode=extended ... ES2015(ES6)+
- ES6対応
- 但し、k6は実行時に内部でES6からES5に変換している
- --compatibility-mode=base オプションをつけるとその処理が省かれるので、省コストで実行されるようになる
- なので、最初からES5ベースで記述するか、ES6ベースで記述したものをツールで変換すると良い
インストール †
InfluxDB †
Redisとの連携 †
- 前の実行結果を使って処理する際に便利!
- 但し、DBは 0 固定か?
- 2021/9現在。DB指定できるようにドキュメントに書いているが、実際 DB:1 を指定しても DB:0 にデータが登録されている。
SSL †
ドキュメント †
k6関連プロジェクト †