問題
ktranslate コンテナの CPU 使用率が 100% に達したか、通常は予想よりも高くなっています。
ヒント
注意すべき点の 1 つは、ktranslate の場合、平均ではなく最大 CPU パーセンテージに注目することが重要であるということです。 KTranslate は、ポーリング サイクルの開始時に CPU を大量に使用し、サイクルの終了時には CPU の使用量が大幅に減少します。 平均使用率を見ると 60% と表示され、ktranslate が 100% 近くの時間を費やしているという事実を見逃してしまう可能性があります。これは潜在的な問題です。 最大 CPU 消費量が 100% に達しないように、十分なリソースを割り当てる必要があります。
解決
CPU 使用率の原因は、使用している ktranslate コンテナーのタイプによって異なります。
SNMP
SNMP コンテナーでは、主に、ターゲット デバイスから収集する必要があるデータ ポイントの数と、各データ ポイントの収集に費やす時間が原因で、CPU 使用率が増加します。
SNMP 要求に応答する際の待ち時間が長いデバイスは、より多くのリソースを効率的に必要とします。timeout
を長くするかretries
を長くすると、これらの遅いデバイスからデータを取得してチャートのギャップを回避する可能性が高くなりますが、コンテナーに提供する必要があるリソースの量も増加します。また、多数の SNMP トラップ イベントが着信する可能性もあります。一般的な見積もりとして、CPU ごとに 1 秒あたり約 1000 のイベントを取り込むことができるはずです。
使用率が高い場合のオプションは次のとおりです。
- ホストに CPU を追加して、既存のワークロードを処理します。
poll_time_sec
グローバルまたはデバイス固有の構成で大きな数値を指定して、ポーリング間隔を増やしてください。- ktranslate 構成 yaml のデバイス セクションからデバイスを削除し、自動再検出に含まれないようにすることで、ポーリングされるデバイスの数を減らします。
- 必要のない MIB を
mibs_enabled
グローバル リストから除外します (あまり一般的ではありません)。 - ネットワーク デバイスの構成を変更して送信しないようにすることで、価値の低い/ノイズの多い SNMP トラップの量を減らすことができます。
フロー
フロー コンテナーでは主に、受信フロー イベントの数により CPU 使用率が増加します。一般的な見積もりとして、各 CPU で 1 秒あたり約 2000 のフローを取り込むことができるはずですが、負荷はフロー プロトコルによって若干異なります。
使用率が高い場合のオプションは次のとおりです。
- ホストに CPU を追加して、既存のワークロードを処理します。
- 重要なインターフェイスでのみフローを収集するか、可能であればサンプリングされたフローを使用するなど、ネットワーク デバイスの設定を変更して、着信フローの量を減らします。
Syslog
Syslog コンテナでは、主に受信 syslog イベントの数により CPU 使用率が増加します。一般的な見積もりとして、1 秒あたり約 2000 のメッセージを取り込むことができるはずです。
使用率が高い場合のオプションは次のとおりです。
- ホストに CPU を追加して、既存のワークロードを処理します。
- 特定のタイプのメッセージまたは重大度を送信しないようにネットワーク デバイスの構成を変更して、価値の低い/ノイズの多い syslog イベントの量を減らします。これらの変更を行う方法については、デバイス ベンダーのドキュメントを参照してください。