intra-mart Accel Platform セットアップガイド 第29版 2019-08-01

11.11.2. 負荷試験を実施する際の各種設定

  • intra-mart Accel Platform 上で負荷試験を実施する際に、設定の変更が必要となる項目について説明します。

11.11.2.1. Resin のJVMオプション設定

Javaのヒープサイズ等のJVMのオプション設定を変更してください。
設定例(設定およびオプション設定)
jvm_args  : -Xmx2048m -Dfile.encoding=UTF-8

注意

Linux系OSで、JVMオプションでtempディレクトリの指定を行わない場合、「/tmp」が利用され、cron等の設定により、定期的に「/tmp」配下の内容が削除される設定が標準で組み込まれている場合があります。
Resin では、作業用ディレクトリに展開した設定ファイル等の変更を検出した際に自動的に再起動が行われる場合があり、回避するためには下記のような設定を行います。
jvm_args  : -Xmx2048m -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/var/resin-tmp
※-Djava.io.tmpdirに指定したディレクトリは事前に作成し、権限設定を行う必要があります。

11.11.2.2. 任意のユーザでログインを行うための設定

セキュア・トークン設定を無効化した上で、「http://ホスト名:ポート番号/コンテキストパス/certification」 にパラメータを指定してアクセスすることで任意のユーザで認証することが可能です。
設定方法はWEB-INF/conf/token-filtering-target-config/im_certification.xml の 「/certification」をコメントアウトします。
詳細は以下の通りです。
WEB-INF/conf/token-filtering-target-config/im_certification.xml
<p:entry url="/certification">
↓
<!--     <p:entry url="/certification" /> -->
これで以下のURLでログイン可能です。
http://ホスト名:ポート番号/コンテキストパス/certification?im_user=(ユーザ名)&im_password=(パスワード)
また、「&im_url」属性を付加することにより自動ログイン後に任意のアプリケーションの画面に遷移させることも可能です。
http://ホスト名:ポート番号/コンテキストパス/certification?im_user=(ユーザ名)&im_password=(パスワード)&im_url=(ログイン後に表示したいパス)

注意

デフォルトで無効化されているとおり、この設定を変更することでURL引数やPOSTリクエストでログイン可能でかつ、任意のアプリを実行させることが可能ですので、運用上で利用する場合はセキュリティ観点で問題が無いかを十分に確認の上、ご利用ください。

11.11.2.2.1. 多要素認証の確認コード検証を無効化するための設定

多要素認証機能を有効にしている場合、多要素認証が有効になっているユーザに対してはユーザコード・パスワードでの認証後に確認コードの入力を求められます。
この確認コードの検証機能を無効化し、どのような確認コードが入力された場合でも認証を OK とするためには以下のシステムプロパティを設定します。
-Djp.co.intra_mart.system.mfa.extension.app_auth.service.impl.TOTPAuthCodeVerifier.ignore_token_check=true

11.11.2.3. jsspRpc、非推奨であるformタグを利用した業務画面の試験を行うための設定

jsspRpcは、通常セッションを利用したトークンチェックが都度行われるため、ログインを行うごとにトークンチェックに必要なパラメータの値が変更します。このため、負荷試験のシナリオ生成時と同一のリクエストのパラメータを引き渡してもエラーとなってしまいます。
回避するにはWEB-INF/web.xmlを編集し、SecureJSSPServlet、および、jsspRpcServletのサーブレットパラメータ”security”の値を”false”に変更します。
WEB-INF/web.xml
<servlet>
    <servlet-name>SecureJSSPServlet</servlet-name>
    <servlet-class>jp.co.intra_mart.system.servlet.jssp.SecureJSSPServlet</servlet-class>
    <init-param>
        <param-name>security</param-name>
        <param-value>false</param-value>
    </init-param>
</servlet>
<servlet>
    <servlet-name>JsspRpcServlet</servlet-name>
    <servlet-class>jp.co.intra_mart.system.servlet.jssp.JsspRpcServlet</servlet-class>
    <init-param>
        <param-name>security</param-name>
        <param-value>false</param-value>
    </init-param>
</servlet>

11.11.2.4. 多重アクセスを想定した試験を行うための設定

多重アクセスを想定した試験を行うために、以下の値を設定します。

  • リクエスト制御
    intra-mart Accel Platform にはリクエストに対して同時に実行可能な数を制限する機能があります。複数のユーザが同時アクセスを行うような試験を行う場合は、この制限に該当し、エラーとなってしまう可能性あるため、制限数を調整します。サーバの同時処理の制限を解除するには リクエスト制御設定のthreadタグのmax属性に”0”を指定します。
    WEB-INF/conf/request-control-config.xml
    <request-control-config>
        <thread max="0">
          ...
        </thread>
    </request-control-config>
    

    リクエスト制御設定については、「設定ファイルリファレンス」-「サーバの同時処理の制限」を参照してください。

  • データソースへの最大コネクション数
    アプリケーションサーバにより、データベースに同時に接続できる数が制限がかかる可能性があります。アプリケーションサーバのデータソース設定にて、同時に接続可能な数が十分な値となることを確認してください。
    アプリケーションサーバに Resin を利用する場合は、resin-web.xmlを編集することにより変更可能です。
    設定方法・詳細は、「設定ファイルリファレンス」-「最大コネクション数設定」を参照してください。
  • Resin のスレッド数
    Resin のスレッド数を増やす場合は、以下のファイルの該当箇所を変更してください。
    <%RESIN_HOME%>/conf/resin.properties
    # Throttle the number of active threads for a port
    port_thread_max : 256
    accept_thread_max : 32
    accept_thread_min : 4
          # keepalive_max : 512
    

11.11.2.5. クラスタリング環境を想定した負荷試験を行うための設定

クラスタリング環境を想定した負荷試験を行うために、以下の値を設定します。

  • 最大通信スレッド数
    サーバ間通信に利用するスレッドの最大数を設定する必要があります。クラスタグループを構成するサーバ台数の 2 倍を目安に設定してください。
    サーバ間通信はバックエンドでスレッドを生成して行われます。クラスタグループを構成するサーバ台数が多くなるとスレッド数が不足しサーバ間の通信が行えない場合があります。
    負荷試験実施時にその様な事象が確認できた場合は、本設定を調整してください。
    省略時のデフォルト値は 10 です。マルチキャスト設定を行っている場合のデフォルト値は 8 です。
    最大通信スレッド数についての詳細は「設定ファイルリファレンス」-「最大通信スレッド数」を参照してください。
    WEB-INF/conf/network-agent-config.xml
    <network-agent-config>
      <max-threads>10</max-threads>
    </network-agent-config>
    
  • 到達確認/再送用最大通信スレッド数
    到達確認や再送などの通信に利用するスレッド数を設定する必要があります。最大通信スレッド数と同様に、クラスタグループを構成するサーバ台数の 2 倍を目安に設定してください。
    クラスタグループを構成するサーバ台数が多くなるとスレッド数が不足しサーバ間の通信が行えない場合があります。
    負荷試験実施時にその様な事象が確認できた場合は、本設定を調整してください。
    省略時のデフォルト値は 8 です。
    到達確認/再送用最大通信スレッド数についての詳細は「設定ファイルリファレンス」-「到達確認/再送用最大通信スレッド数」を参照してください。
    WEB-INF/conf/network-agent-config.xml
    <network-agent-config>
      <max-oob-threads>8</max-oob-threads>
    </network-agent-config>
    
  • セッション管理 組み込みHazelcast連携 - 通信スレッド数設定
    セッション管理 組み込みHazelcast連携を利用する場合は、クラスタグループ内の通信に利用するスレッド数を別途設定する必要があります。ここで設定した数のスレッドが、セッションの読み込みや書き込み時に利用されます。弊社では、クラスタグループを構成するサーバ台数を設定して負荷試験を行っております。よって、クラスタグループを構成するサーバ台数を目安に設定を行ってください。
    負荷試験実施時にセッションの読み込みや書き込みが遅延する等の事象が確認できた場合は、本設定を調整してください。
    省略時のデフォルト値は 3 です。
    通信スレッド数設定についての詳細は「設定ファイルリファレンス」-「通信スレッド数設定」を参照してください。
    WEB-INF/conf/hazelcast-config.xml
    <hazelcast-config>
      <base>
        <io-thread-count>3</io-thread-count>
      </base>
    </hazelcast-config>
    

注意

以上の設定は、負荷試験を行う際に必要となる設定項目です。本番の運用環境では、必ず環境に応じた適切な設定を行うようにします。