k6入門:k6 の Constant VUs について

スポンサーリンク
k6入門:k6 の Constant VUs について 環境構築
k6入門:k6 の Constant VUs について
この記事は約3分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

今日は、k6 の Constant VUs についてご紹介します。

スポンサーリンク

背景

Dockerで構築したWebアプリの開発環境において、k6のExecutorsについて調査したときの内容を備忘として残しました。

開発環境のソースは下記のリポジトリにあります。

Constant VUs

“constant-vus executor”を使用すると、指定された時間に対して、固定数のVUsができるだけ多くのイテレーションを実行します。

このエグゼキュータの簡略化バージョンとして、vusオプションとdurationオプションを使用できます。

options

オプション 一般的な設定オプションに加えて、このエグゼキュータには以下のオプションがあります。

オプションタイプ説明デフォルト値
duration (必須)文字列シナリオの合計実行時間(gracefulStopを除く)
vus整数同時に実行するVUsの数1

いつ使用するか

特定の数の VU を一定時間実行する必要がある場合は、このエグゼキュータを使用します。

サンプル

この例では、10のVUが30秒間、一貫して実行されるようにスケジュールされています。

import http from 'k6/http';
import { sleep } from 'k6';

export const options = {
  discardResponseBodies: true,
  scenarios: {
    contacts: {
      executor: 'constant-vus',
      vus: 10,
      duration: '30s',
    },
  },
};

export default function () {
  http.get('https://test.k6.io/contacts.php');
  // Injecting sleep
  // Total iteration time is sleep + time to finish request.
  sleep(0.5);
}

観察

以下のグラフは、この例のスクリプトのパフォーマンスを表しています。

テストシナリオの入力と結果に基づいて以下のポイントが考えられます:

  1. VUの数は10で固定され、テストが開始される前に初期化されます。
  2. 全体のテストの実行時間は、設定された30秒間で固定されています。
  3. デフォルトの関数の各イテレーションは約515ミリ秒(おおよそ2回/秒)かかると予想されています。
  4. 最大スループット(最高効率)は、したがって約20回/秒であると予想されます(2回/秒 * 10のVU)。
  5. 最大スループットはテストの大部分で達成され、維持されます。
  6. したがって、合計で約600回のイテレーションが実行されます(30秒 * 20回/秒)。

おわりに

今日は、k6 の Constant VUs についてご紹介しました。

よっしー
よっしー

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました