クラウド時代のパートナー 株式会社 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ファイルを配布可能
  • 日本語、韓国語、中国語フォント導入済み
  • CentOS Linux release 7.7
  • 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でテストする対象がインターネット側の場合に有効にするのを推奨します。

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 : Xvnc若しくはXorg
      • username : Marketplaceからデプロイした時に指定したユーザー名
      • password : Marketplaceからデプロイした時に指定したパスワード
  2. Apache JMeterの起動

    1. Double-click [jmeter] on the remote desktop screen.

    2. 以下のメッセージは初回起動時のみ表示されます。「Tsust and Launch」をクリックします。
      「The application launcher "jmeter.desktop" has no been maked as trusted. If you do not know the source of this file, launching it may be unsafe.」

    3. [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クライアント

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

JMeterサーバ

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

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

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

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

日本語入力の設定

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

  1. 日本語キーボードの設定

    1. TeraTerm などターミナル ソフトウェア経由で SSH 接続を行います。

    2. SSH 接続したコンソール画面から /usr/share/ibus/component/kkc.xml ファイルに対して管理者権限で vi エディタを起動、layout を default から jp に変更、保存します。

      $ sudo vi /usr/share/ibus/component/kkc.xml
      
      <engines>
        <engine>
          <name>kkc</name>
          <language>ja</language>
          <license>GPL</license>
          <author>Daiki Ueno &lt;ueno@gnu.org&gt;</author>
          <icon>/usr/share/ibus-kkc/icons/ibus-kkc.svg</icon>
          <layout>jp</layout>
          <longname>Kana Kanji</longname>
          <description>Kana Kanji Input Method</description>
          <rank>77</rank>
          <symbol>&#x3042;</symbol>
          <textdomain>ibus-kkc</textdomain>
        </engine>
      </engines>
      
  2. GTK IM モジュールの設定

    1. SSH 接続したコンソール画面から以下のコマンドを実行、~/.bash_profile に GTK IM モジュールの設定をします。

      $ echo "export GTK_IM_MODULE=ibus" >> ~/.bash_profile
      
    2. 以下のコマンドを実行し、SSH 接続を終了します。

      $ logout
      
  3. 日本語入力の設定

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

    2. リモートデスクトップ画面上部の [Applications] をクリックし、[System Tools] - [Settings] を選択、クリックします。
      日本語入力_001

    3. Settings 画面の [Region & Language] を選択、[Input Sources] にある [+] をクリックします。
      日本語入力_002

    4. [Add an Input Source] 画面内にある [Japanese] - [Japanese (Kana Kanji)] を選択、[Add] をクリックします。
      日本語入力_003

    5. [English (US)] を選択、[-] をクリックし、[Input Sources] から削除、Settings 画面を終了します。
      日本語入力_004

    6. JMeter など、アプリケーションを起動し、 [あ] を表示されることを確認、[半角/全角] キーで日本語と英語の切り替えを行います。
      日本語入力_005

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

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

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

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実行環境の調整方法 を参照してください。

サポートについて

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

  • サポート対象お問い合わせ例
    • 対象のソリューションがデプロイできない
    • デプロイ直後の仮想マシンが正常に動作しない
  • 以下はサポート対象外になります
    • CentOSや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.