データ・ドメインのcgroupsの有効化

Endeca ServerがLinux 6にデプロイされている場合、データ・ドメインをホストする各Endeca ServerノードでEndecaServer.properties構成ファイルに必要な変更を加えた後、Endeca Serverデプロイメントの$DOMAIN_HOME/EndecaServer/binディレクトリにある特別に提供されたsetup_cgroups.shスクリプトを実行することで、Endeca Serverアプリケーションおよびそのプロセスのcgroupsの利用を有効化できます。

開始する前に、次の要件が満たされていることを確認します。
  • Oracle Linux 6またはRed Hat Enterprise Linux 6が実行されているマシンにEndeca Serverがデプロイされている(Endeca Serverクラスタを実行している場合、すべてのEndeca Serverノードが同じハードウェアおよびオペレーティング・システム・レベルで実行されている必要があります)。
  • Endeca Serverがデプロイされているマシンへのrootアクセス権があるか、またはsudoアクセス権がある。
  • ご使用のLinux 6インストールに、Red Hat Enterprise Linux Server release 6という句を含む/etc/redhat-releaseディレクトリが含まれている。
  • rootとして次のコマンドを実行することで、libcgroupパッケージがインストールされていることを確認する。
    # yum install libcgroup
    次の略例のような出力が表示される必要があります。
    ...
    Installed Packages 
    libcgroup....

Endeca Serverでcgroups機能を有効にするには、次の手順を実行します。

  1. WebLogic Server管理コンソールまたはスクリプトを使用して、Endeca Serverを停止します。
  2. $DOMAIN_HOME/configに移動し、EndecaServer.propertiesファイルをテキスト・エディタで開き、次の行を確認します。
    endeca-cgroups-enabled=false
    endeca-cgroups-specified-by-percentage=true
    endeca-cgroups-reserved-ram-mb=5120
    endeca-cgroups-reserved-swap-mb=5120
    endeca-cgroups-reserved-ram-percentage=10.0
    endeca-cgroups-reserved-swap-percentage=10.0

    このファイルでcgroupsを有効にすると、割合または実際のサイズ(MB)でメモリー制限を指定できます。

  3. endeca-cgroups-enabled設定を変更してtrueを指定します。
  4. 次のいずれかを実行します。
    • endeca-cgroups-specified-by-percentage=trueのままにする場合、setup_cgroups.shスクリプトによってEndeca Server用に作成されたcgroupで次のパラメータが使用されます。
      endeca-cgroups-reserved-ram-percentage=10.0
      endeca-cgroups-reserved-swap-percentage=10.0
      これらの設定は、RAMおよび使用可能なスワップ・メモリー・サイズ(マシンで常に使用可能にしておくサイズ、他のプロセス用に予約されているサイズ、および特定のデータ・ドメインにサービスを提供するcgroupで使用されないサイズ)の割合を示します。これらの設定を変更することも、このファイルからデフォルトを使用するようにすることもできます。
    • endeca-cgroups-specified-by-percentage=falseを指定すると、setup_cgroups.shスクリプトによってEndeca Server用に作成されたcgroupで次のパラメータが使用されます。
      endeca-cgroups-reserved-ram-mb=5120
      endeca-cgroups-reserved-swap-mb=5120
      これらの設定は、RAMおよび使用可能なスワップ・メモリー・サイズ(マシンで常に使用可能にしておくサイズ、他のプロセス用に予約されているサイズ、および特定のデータ・ドメインにサービスを提供するcgroupで使用されないサイズ)の正確な量をMB単位で示します。これらの設定を変更することも、このファイルからデフォルトを使用するようにすることもできます。
  5. EndecaServer.propertiesファイルを保存します。
    注意: Endeca Serverクラスタを実行している場合は、Endeca Serverがデプロイされているすべてのマシンで同じようにEndecaServer.propertiesファイルを変更します。
  6. $DOMAIN_HOME/EndecaServer/binに移動し、setup_cgroups.shを探して次のようにrootユーザーとして実行します。
    setup_cgroups.sh <user> <endeca_server_domain>
    <user>はこのマシンのrootユーザー名、<endeca_server_domain>はEndeca Server Javaアプリケーション用に作成されたWebLogic Serverドメインの名前を示します。
    スクリプトはRed Hat Enterprise Linux 6が実行されていることを確認し、マシンにlibcgroupパッケージが存在することを確認するcgconfigユーティリティを実行して、<endeca_server_domain>という名前でcgroupを作成します。
    スクリプトがcgroupを作成すると、次のメッセージが発行されます。
    Finished successfully. Note: Endeca Server will need to be restarted to see these changes.
    注意: Endeca Serverクラスタを実行している場合は、Endeca Serverがデプロイされているすべてのマシンで同じようにsetup_cgroups.shを実行します。
  7. Endeca Serverマシンを起動します。
    起動時に、Endeca ServerはEndecaServer.propertiesファイルの設定を確認し、cgroupsが有効になっている(trueに設定されている)場合、このEndeca Serverノードで起動されるすべてのDgraphプロセスに対して、setup_cgroups.shによりEndeca Serverに作成されたcgroupを使用します。Endeca Serverは単一のグループを使用して、同じノード上のすべてのDgraphプロセスを制御します。Dgraphプロセスで使用される物理/仮想メモリー・サイズの合計が制限を超えると、オペレーティング・システムは終了プロセスを開始します。
注意: (なんらかの理由で)後でEndeca Serverでcgroupsの使用を無効にする場合は、Endeca Serverノードを停止し、endeca-cgroups-enabled=falseを示すようにEndecaServer.propertiesを変更して、ノードを再起動します。この場合、Endeca Serverは起動後にcgroups依存しなくなります。