クラウド時代のパートナー 株式会社 pnop

Azure Marketplace "Load Tester (multiple remote servers) Powered by Apache JMeter™" 使用方法

Select a language: [English] [日本語]

はじめに

このドキュメントはAzure Marketplaceで提供されている "Load Tester (multiple remote servers) Powered by Apache JMeter™" の説明書です。

Load Tester (multiple remote servers) Powered by Apache JMeter™とは

"Load Tester (multiple remote servers) Powered by Apache JMeter™" はJMeterを複数のサーバ上で稼働させ、大規模な負荷テストをすることを目的としています。

※単体のサーバでApache JMeterから負荷をかけたい場合は、"Load Tester (standalone) Powered by Apache JMeter™" をご利用ください。

Load Tester (multiple remote servers) Powered by Apache JMeter™の特徴

  • Apache JMeter 5.3
  • Microsoftのリモート デスクトップ クライアントから接続可能 (xrdp導入済み)
  • 多くのローエンドコンピューター間でテストを複製できるため、より大きな負荷テストが実施可能
  • すべてのJMeterサーバーに負荷テスト用のCSVファイルを配布可能
  • 日本語、韓国語、中国語フォント導入済み
  • Ubuntu 20.04 LTS
  • Azure仮想マシンとして提供されている他、いくつかのPaaSを使用

システム要件

  • Virtual machineが TCP/3389 への接続を受け付けること (Remote Desktop Serviceで外部からの接続を受け付け、GUI操作をしたい場合)
  • Virtual machineが TCP/22 への接続を受け付けること (SSHで外部からの接続を受け付け、操作をしたい場合)

構築方法

Azure Marketplace上の "Create Load Tester (multiple remote servers) Powered by Apache JMeter™" を選択し、必要なパラメータ情報を設定後デプロイします。

構築に必要なパラータの説明は以下の通りです。

  • "Basic" タブ

    • サブスクリプション、リソースグループ、リージョン
      デプロイを行うサブスクリプション、リソースグループ、リージョンを選択若しくは入力します。
    • Username
      Usernameを入力します。
    • Authentication type
      • 「パスワード」を指定した場合
        • Password, Confirm password
          SSH、リモートデスクトップで接続する際のパスワードを入力します。 (JMeterクライアントとサーバに同じ設定が適用されます)
      • 「SSH公開キー」を指定した場合
        • SSH public key
          作成したSSH public keyを入力します。 (JMeterクライアントとサーバに同じ設定が適用されます)
        • Password for Remote Desktop connection, Confirm password
          リモートデスクトップ接続の認証に使うパスワードを入力します。
  • "Networking" タブ

    • Virtual network
      新規作成の場合は仮想ネットワーク名とCIDRを指定します。既存の仮想ネットワークも選択可能です。
    • JMeter client Subnet
      JMeterクライアントを配置するサブネット名とCIDRを指定します。
      既存の仮想ネットワークを指定した場合には配置するサブネットを選択します。
    • JMeter servers Subnet
      JMeterサーバを配置するサブネット名とCIDRを指定します。
      既存の仮想ネットワークを指定した場合には配置するサブネットを選択します。

    既存の仮想ネットワークを選択して、そのサブネットにNSGが設定されている場合は、以下のセキュリティ規則を追加してください。

    • JMeterクライアントサブネット
      • 受信セキュリティ規則 - JMeterサーバサブネットから TCP/1099,30000-65535 を許可
      • 受信セキュリティ規則 - JMeterクライアントに接続するクライアントから TCP/3389,22 を許可
    • JMeterサーバサブネット
      • 受信セキュリティ規則 - JMeterクライアントサブネットから TCP/1099,30000-65535 を許可
  • "Storage" タブ

    • File shareing storage account
      CSVデータファイルと、各種設定をJMeterサーバと共有するストレージアカウントを指定します

      「新規作成」を押すと、ストレージアカウント名などの変更ができますが、アカウントの種類は何を選択しても「StorageV2」が設定されます。

  • "JMeter client" タブ

    • JMeter client virtual machine name
      JMeterクライアント名を設定します
    • Size
      JMeterクライアントのインスタンスサイズを選択します
    • OS disk type
      Azureマネージドディスクの種類を選択します
    • Public IP
      JMeterクライアントのパブリックIPアドレス名を設定します
    • DNS name label (オプション)
      JMeterクライアントに接続するためのDNSサフィックスを設定します
  • "JMeter servers" タブ

    • Virtual machine scale set name
      JMeterサーバのスケールセット名を設定します
    • Size
      JMetersサーバのインスタンスサイズを選択します
    • OS disk type
      Azureマネージドディスクの種類を選択します
    • Instance count
      JMeterサーバのインスタンス数を設定します
    • Public IP address per instance
      本オプションを有効にするとJMeter serverの各インスタンスにパブリックIPアドレスが付与されます。
      JMeterでテストする対象がインターネット側の場合に有効にするのを推奨します。

    Azureサブスクリプションの制限に注意してください。(vCPU数、インスタンス数、パブリックIPアドレス数など)

Network Security Group (NSG) は仮想マシンのNICに対して設定されます。

JMeterクライアントでは、以下のインバウンドルールがNSGに追加されます。

  • 任意の送信元から RDP(TCP/3389) を許可
  • 任意の送信元から SSH(TCP/22) を許可

必要なところからのみ接続を許可するように、このNSG設定を変更することをお薦めします。

利用方法

※ Apache JMeterの使用方法はこのドキュメントには含まれていません

JMeterクライアントへ接続

お好みにより、Remote DesktopによるGUI操作と、SSHによるCUI操作を選択できます。

GUIによる操作

  1. Remote Desktop接続

    1. クライアントPCからリモートデスクトップ(RDP)で接続します。

      • コンピューター : 構築方法 にて設定した仮想マシンのパブリックIPアドレスを入力します。Azureポータルの概要ブレードからも確認できます。
    2. リモートデスクトップ画面が表示され、「Login to (仮想マシン名)」のダイアログが表示されるので、以下の情報を設定して [OK] をクリックします。

      • Session : Xorg
      • username : Marketplaceからデプロイした時に指定したユーザー名
      • password : Marketplaceからデプロイした時に指定したパスワード
  2. Apache JMeterの起動

    1. リモートデスクトップ画面の [JMeter] をダブルクリックします。

    2. [Options] メニューの [Choose Language] から表示言語の変更が行なえます。

CUIによる操作

SSHで接続し、操作してください。

JMeterのパス:/usr/local/jmeter

CSVデータファイルの配布方法

JMeterクライアント上の /mnt/jmuserdata ディレクトリにファイルを置くことができます。
全てのJMeterサーバはこの /mnt/jmuserdata ディレクトリを共有マウントしています。

JMeterクライアントとJMeterサーバのインスタンスサイズを変更する場合

AzureポータルやAzure CLIなどを使用して、JMeterクライアントとサーバのインスタンスサイズを変更できます。

JMeterサーバのインスタンス数を変更する場合

AzureポータルやAzure CLIなどを使用して、JMeterサーバのインスタンス数を変更できます。

JMeterサーバの数を変更した後には次のコマンドを実行して、JMeterクライアントが参照するサーバ一覧を更新します。

/usr/local/jmeter/bin/jmeter.properties ファイルが更新されます。

$ ~/refresh-jmeter-servers.sh

JAVA実行環境の調整方法

もし、JAVA実行環境の調整が必要な場合 (例:-Xmx, -Xms) 以下の手順で行います。

JMeterクライアント

~/.loadtesterファイルにある "JVM_ARGS" 環境変数を修正します。

その後、JMeterクライアントからログアウト後に再度ログインします。

JMeterサーバ

JMeterクライアントで /mnt/systmp/jmeter-server-option.sh ファイルを変更し、AzureポータルなどからJMeterサーバの仮想マシンスケールセットを再起動します。

JMeterサーバの「jmeter.properties」変更方法

JMeterクライアントで /mnt/systmp/jmeter.properties ファイルを変更し、AzureポータルなどからJMeterサーバの仮想マシンスケールセットを再起動します。

本ファイルを誤った内容で変更した場合、JMeterサーバが起動しなくなる恐れがありますので、変更前にファイルのバックアップを取ることをお勧めします。

JAVA versionの変更方法

デフォルトではJRE 8上でJMeterが動作します。

仮想マシン上には以下のJREが導入済みで、任意のversionに変更することができます。

  • JRE 8 (デフォルト)
  • JRE 11
  • JRE 14

JMeterクライアントで ~/.loadtester と /mnt/systmp/jmeter-server-option.sh の末尾にJAVA_HOMEの設定を追加します。

  • JRE 11を利用する場合: export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
  • JRE 14を利用する場合: export JAVA_HOME="/usr/lib/jvm/java-14-openjdk-amd64"

JRE 11を利用する場合の設定例

export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"

その後、JMeterクライアントは仮想マシンからログアウト後に再度ログインし、またAzureポータルなどからJMeterサーバの仮想マシンスケールセットを再起動します。

日本語入力の設定

JMeter でコメントを日本語で入力したい場合などでお試しください。

  1. クライアントPCからリモートデスクトップ(RDP)で接続します。

  2. リモートデスクトップ画面の [Applications] メニューから [Settings] を選択後、 [Session and Startup] をクリックします。
    日本語入力_001

  3. [Application Autostart] タブで一覧中の [ibus-daemon] をチェック後、[Close] をクリックします。
    日本語入力_002

  4. リモートデスクトップからログアウト後に再度ログインします。

  5. リモートデスクトップ画面の [Applications] メニューから [Settings] を選択後、 [iBus Preferences] をクリックします。
    日本語入力_003

  6. [Input Method] タブで [Add] をクリック後に表示される [Select an input method] 画面にて、[Japanese] をクリック後に表示される一覧から [Kana Kanji] を選択後、[Add] をクリックします。
    日本語入力_004

  7. [Japanese - japanese] を選択、[Remove] をクリックし、[Input Method] から削除後 [Close] をクリックしてiBus Preferences 画面を終了します。
    日本語入力_005

  8. デスクトップ画面上部のステータスバーに [あ] が表示されることを確認、[半角/全角] キーで日本語と英語の切り替えを行います。
    日本語入力_006

ソフトウェアのアップデートについて

Ubuntu及びJMeterをはじめとした各種のソフトウェアバージョンは、Azure Marketplaceに登録時点の最新 Version が適用済みです。

必要に応じてUbuntuおよびソフトウェアのアップデートを行ってください。

FAQ

  • Remote Desktopでvirtual machineに接続できない

    • Virtual machineにTCP/3389ポートで接続できる必要があります。
      以下を確認してください。
      • サブネットやNICに割り当てているAzure NSGでTCP/3389の受信を許可する設定になっているか?
      • Azure LoadBalancer経由の場合はそのLoadBalancerが適切に仮想マシンのTCP/3389にフォワードするようになっているか?
  • OSが正常に起動しない / Remote Desktopへのログインが行えない

    • 仮想マシンを正常に動作させるためには、OSのメモリは2GB以上必要です。

      仮想マシン及び仮想マシンスケールセットのサイズを適切なものに変更してください。

  • Apache JMeter™がメモリ不足により起動しない

    • JVM_ARGS環境変数に -Xmsおよび-Xmsを指定して、JMeterが使用するヒープメモリサイズを調整してください。

      「利用方法」の章にある JAVA実行環境の調整方法 を参照してください。

  • 仮想マシン、仮想マシンスケールセットのデプロイに失敗する

    デプロイ中に「QuotaExceeded」や「PublicIPCountLimitExceededByVMScaleSet」などのエラーが出力された場合、vCPUやパブリックIPアドレスの数がサブスクリプションの制限を超えています。

    その場合は、Azureサポートに連絡して制限値を増やすか、仮想マシンのサイズ・台数を少なくした上で再度デプロイします。

サポートについて

サポートは有償にて承ります。

  • サポート対象お問い合わせ例
    • 対象のソリューションがデプロイできない
    • デプロイ直後の仮想マシンが正常に動作しない
  • 以下はサポート対象外になります
    • UbuntuやJMeterに関する一般的な使用方法
    • Azureに関する一般的なご質問については弊社提供の『Azure技術支援サービス』にて承ります。

サポートをご希望の方は以下にお問い合わせください。

  • 株式会社 pnop - Marketplace Solutionsサポート営業窓口
  • sales@pnop.co.jp

Apache®, Apache JMeter™, JMeter, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries. No endorsement by The Apache Software Foundation is implied by the use of these marks.