メインコンテンツまでスキップ
Sumo Logic Japanese

Collector が使用する CPU ターゲットの設定

Installed Collector は、マシンで利用可能なすべての CPU 処理リソースを使用します。大抵の場合、CPU 処理問題が発生することはありませんが、多くのログ データが生成される場合や、Collector がインストールされているマシンで動作している他のプロセスを保護する必要がある場合は、CPU ターゲットを設定して、Collector が使用する CPU の処理量を制限できます。この選択肢は、ローカルまたはリモートのファイル Source にのみ適用されます。

CPU ターゲットを設定した場合、Collector がターゲットに達すると、コレクションの速度が低下します。ログは引き続き収集されますが、新しいデータの取り込みに遅延が発生する可能性があります。遅延には検索結果で気付くことがあります。

CPU ターゲットはハード リミットではないことに注意してください。ターゲットが設定されていても、Collector が制限を超過する可能性はあります。Collector が絶えずターゲットを超過していることに気付いた場合は、CPU ターゲットを増やし、より堅牢なマシンに Collector をインストールするか、リモート コレクション オプションの使用を試します。

CPU ターゲットを設定するには

  1. [Manage Data (データの管理)] > [Collection (コレクション)] > [Collection (コレクション)] を選択します。
  2. Collector 名をクリックするか、Collector 名の右側にある [Edit (編集)] リンクをクリックします。
  3. [詳細設定] をクリックします。
  4. [CPU Target (CPU ターゲット)] メニューからオプションを選択し、[Save (保存)] をクリックします。

ターゲットを低くするタイミング

保護が必要な他のプロセスを実行しているマシンに Collector がインストールされている場合は、CPU ターゲットを低くすると便利です。つまり、CPU リソースが他のプロセスから取り上げられるのではなく、Collector の速度が低下することになります。

Collector の CPU 使用量の算出方法

CPU ターゲットは、Collector の JVM プロセスである java.exe によって使用されている CPU の量をベースにします。CPU ターゲット機能によって、ホスト上の CPU 使用量が制限されることも、CPU リソースへの Collector の JVM アクセスが制限されることもありません。代わりに、Collector は CPU 使用量を毎分モニタリングし、現在の CPU 使用量が [CPU Target (CPU ターゲット)] パラメータで設定したユーザ定義のしきい値を超過すると、リソースと実行中の作業の調整を開始します。

CPU ターゲットが適用される場所とタイミング

CPU ターゲットは、ローカルおよびリモートのファイル Source を実行している Collector にのみ適用されます。Sumo Logic は、ローカルのイベント Source または syslog Source を調整することはありません。そのため、ローカル ファイル Source と Windows イベント Source の組み合わせがある場合、そのような他の Source タイプにより、Collector の CPU 使用量が CPU ターゲットの設定を下回らない可能性があります。

CPU ターゲットの仕組み

リソースの調整は以下の 2 つの方法で行われます。

  1. ホストからローカル ファイルまたはリモート ファイルを読み取る Source ごとに使用されるスレッド数を削減します。デフォルトでは、Collector には Source ごとに最大 8 つのスレッドがあります。CPU のターゲット設定が開始されると、使用されているスレッドが 1 つになるか、設定されたターゲットを CPU が下回るまで、Collector はこのスレッドを 1 つずつ減らします。Collector は、スレッド数を減らしてゼロにすることはありません。Sumo Logic は、常に Source ファイルからの読み取りを続けます。
  2. スキャン間隔が設定された最大値に達するまで、パス式のスキャン間隔を徐々に増やします。デフォルトでは、ローカル ファイル Source は定義されたパスを 2 秒ごとにスキャンします。リモート ファイル Source はパスを 30 秒ごとにスキャンします。調整によって、これらの間隔のいずれかが 10x まで増やされます。つまり、ローカル ファイル Source の最大スキャン間隔は 20 秒、リモート ファイル Source の最大スキャン間隔は 3 分になります。

Collector は、パス式をスキャンして新しいファイルを見つける場合も、前のスキャンで見つかったファイルを読み取る場合も、必ずある程度の作業を実行します。そのためホストで利用できる CPU によっては、調整されたコレクションが、CPU ターゲット パラメータで定義した量より多くの CPU を引き続き必要とする可能性があります。この場合、その Collector に設定したターゲットを CPU が下回る可能性はありません。

CPU ターゲットを Collector に適用する方法

CPU ターゲットの値は以下の 3 つの方法で設定できます。

  1. [Manage Data (データの管理)] > [Collection (コレクション)] > [Collection (コレクション)] で Collector を編集して、[CPU Target (CPU ターゲット)] の値を更新します。
  2. Collector 管理 API を使用して、Collector の設定を更新します。  
  3. Collector を最初にインストールして登録するときに、targetCPU パラメータを user.properties ファイルまたは -VtargetCPU コマンド ライン引数に適用します。

ターゲット設定が適用されていることを知る方法

Collector のログ (collector.log) で、CPU ターゲット設定と現在の使用量に関する情報を含む以下のようなログ行を確認できます ($current% と $target% は数字になります)。

  • "Initializing CPU Resource Monitor with a target of $target%" (ターゲット $target% で、CPU リソース モニタを初期化しています) - このメッセージは、Collector に設定された CPU ターゲットについて言及しています。
  • "Resource consumption $current% is higher than $target%" (リソース消費量 $current% が $target% を上回っています) - このメッセージは、CPU ターゲット設定イベントの開始とプロセスの調整について言及しています。
  • "Resource consumption $current% is lower than $target%' (リソース消費量 $current% が $target% を下回っています) - このメッセージは、CPU ターゲット設定イベントの終了とプロセス調整について言及しています。
  • "Resource consumption $current% is close to $target%" (リソース消費量 $current% が $target% に近接しています) - このメッセージは、Collector が現在 CPU のターゲット設定もプロセスの調整も行っていないことを示しています。

ターゲット設定が不十分な場合に、Collector の CPU 使用量を減らす方法

CPU ターゲットを設定していても、ターゲットを上回る CPU 使用量が表示され続ける場合、Collector のローカル ファイル Source を確認して、必要な処理時間を減らすためにできる Source 設定変更を見つけます。これには以下のようなものがあります。

  • より具体的にパス式を定義し、該当する場合は再帰的なパス式を削除します。
  • スキャンされるパス式で見つかるディレクトリとログ ファイルの総数を減らします。古いファイルを定期的にアーカイブまたは圧縮すると、スキャンとディスク両方のリソースを減らすことができます。
  • Source 設定にある不要なブラックリストを確認し、それらを削除します。
  • Source 上の包含/除外/ハッシュ/マスク ルールを確認し、それらが必要であり、その Source に対して最適化されていることを確認します。
  • 不要な Source を削除します。
  • Collector の最大ヒープ サイズを増やします。
  • この記事は役に立ちましたか?