opscenterdによる高いCPU使用率

ノードリストのポーリング間隔を大きくしたり、スリープ遅延を設定したりすると、opscenterdの起動時または実行時の過剰なCPU使用率を減らすことができます。

ノードリストのポーリング間隔を大きくしたり、スリープ遅延を設定したりすると、opscenterdの起動時または実行時の過剰なCPU使用率を減らすことができます。環境によって、起動時または実行中にopscenterdのCPU使用率が急増する(ほぼ100%になる)場合があります。通常、これは、起動時や、opscenterdの実行中にデフォルトで60秒ごとに実行されるクラスター・トポロジーの取得および解析によって発生します。OpsCenterで、vnodesが有効になっている複数のクラスターを管理している場合、このCPU使用率の急増の影響によりパフォーマンスの低下が生じたり、opscenterdの正常な起動が停止したりすることもあります。

お使いの環境でCPU使用率が過剰になった場合は、可能な回避策を試して問題を軽減してください。
注: OpsCenterの今後のバージョンでは、このプロセスのCPU使用率を減らすための改善策が提供される予定であり、CPUの暫定的な回避策の必要性はなくなります。

opscenterdの実行中にCPU問題についてポーリングする間隔を構成する

ノードリストのポーリング間隔を大きくすると、opscenterdを実行しているときのCPU使用率を減らすことができます。

cluster_name.conf

cluster_name.confファイルの場所は、インストールのタイプによって異なります。

  • パッケージ・インストール:/etc/opscenter/clusters/cluster_name.conf
  • tarボール・インストール:install_location/conf/clusters/cluster_name.conf

ノードリストのポーリング間隔を大きくすると、opscenterdを実行しているときのCPU使用率を減らすことができます。nodelist_poll_period構成オプションは、OpsCenterバージョン5.0.2以降に適用できます。

手順

  1. 編集するcluster_name.confを開きます。
  2. [collection]セクションを追加し、nodelist_poll_period値を設定します。
    [collection]
    nodelist_poll_period = 43200 # this would be every 12 hours
    nodelist_poll_periodは、OpsCenterがクラスターのノード・リストとトークン・リストにポーリングを行う間隔を秒単位で示します。ノード・リストにポーリングを行うと、最後のポーリング以降にトポロジーが変更されたかどうかがわかります。トポロジーの変更を予想していない場合は、大きな値を設定します。
  3. オプション: トポロジーの変更があり、ポーリング間隔を大きな値に設定している場合は、opscenterdを再起動します。それ以外の場合は、次のポーリングを待ちます。
  4. オプション: ブラウザーを更新します。

opscenterdの起動時のCPU問題に関するスリープ遅延を構成する

起動時のクラスター間の遅延を構成すると、起動時のopscenterdによるCPU使用率を軽減でき、OpsCenterが正しく機能します。

opscenterd.conf

opscenterd.confファイルの場所は、インストールのタイプによって異なります。

  • パッケージ・インストール:/etc/opscenter/opscenterd.conf
  • tarボール・インストール:install_location/conf/opscenterd.conf

起動時のクラスター間の遅延を構成すると、起動時のopscenterdによるCPU使用率を軽減でき、OpsCenterが正しく機能します。startup_sleep構成オプションは、OpsCenterバージョン5.1.1以降に適用できます。

手順

  1. opscenterd.confを開いて、startup_sleepを以下のように設定します。
    [clusters]
    startup_sleep = 5

    スリープ値は、OpsCenterが起動時に次のクラスターに接続するまで待機する時間を制御します。デフォルト値は0秒です。この場合、各クラスターへの接続に時間差をつけて待機しません。環境によって、値を調整する必要がある場合があります。スリープ値をゼロ以外の値に構成した場合は、すべてのクラスターが起動してから、UIやAPIを使用してください。そうしないと、OpsCenterが応答しなくなり、複数のエラーがログに記録される可能性があります。

  2. opscenterdを再起動します。