負荷テスト/k6
のバックアップ(No.9)
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
バックアップ一覧
ソース
を表示
負荷テスト/k6 は削除されています。
1 (2021-09-07 (火) 13:00:36)
2 (2021-09-07 (火) 13:02:41)
3 (2021-09-09 (木) 10:13:43)
4 (2021-09-09 (木) 17:31:42)
5 (2021-09-10 (金) 12:59:02)
6 (2021-09-13 (月) 10:18:59)
7 (2021-09-13 (月) 18:55:27)
8 (2021-09-14 (火) 11:54:09)
9 (2021-09-14 (火) 18:01:32)
10 (2021-09-14 (火) 19:32:59)
11 (2022-06-05 (日) 18:38:31)
k6
k6 - github
k6でシナリオ作成するときにハマったこと
モダンな負荷テストツールのk6を試してみた
k6を使って負荷テストをやってみる
k6の使い方 シンプル&軽快な負荷試験ツールを試す
TypeScriptで負荷シナリオテストを作りたくなった話
k6を使うと負荷テストのパフォーマンス計測が捗る話
k6でシナリオベースの負荷テストを試してみる
k6 - Datadog
概要
†
k6はGoで開発されたモダンな負荷試験ツール
軽快なフットワークでインストールが可能
JavaScript
で書いたシナリオを実行する形で利用
試験結果は様々な外部システムと組み合わせることが可能
↑
必要スペック
†
Running large tests
Simple tests will use ~1-5MB per VU. (1000VUs = 1-5GB)
ネット上の情報
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
対応状況
†
JavaScript Compatibility Mode
k6オプション
--compatibility-mode=base ... ES5.1+
--compatibility-mode=extended ... ES2015(ES6)+
ES6対応
但し、k6は実行時に内部でES6からES5に変換している
--compatibility-mode=base オプションをつけるとその処理が省かれるので、省コストで実行されるようになる
なので、最初からES5ベースで記述するか、ES6ベースで記述したものをツールで変換すると良い
↑
インストール
†
Installation
↑
InfluxDB
†
InfluxDB + Grafana
K6の負荷テスト結果をGrafana+InfluxDBで可視化する
InfluxDB(DBは k6)に結果出力
k6 run test.js --out influxdb=http://localhost:8086/k6
↑
Redisとの連携
†
前の実行結果を使って処理する際に便利!
但し、DBは 0 固定か?
2021/9現在。DB指定できるようにドキュメントに書いているが、実際 DB:1 を指定しても DB:0 にデータが登録されている。
Goをインストール
git をインストール
Windows版
xk6
をインストール
xk6-redis
に従い、ビルド
↑
SSL
†
SSL/TLS - k6
Disable SSL certificate verification
↑
ドキュメント
†
get( url, [params] )
post( url, [body], [params] )
Response
↑
k6関連プロジェクト
†
k6-hardware-benchmark
↑
トラブルシューティング
†
Error Codes
↑
hint="script exception"
†