SpectroSERVER のパフォーマンスの評価
内容
casp1032jp
内容
スレッド遅延の調査
このセクションのトピックでは、スレッド遅延が
CA Spectrum
のパフォーマンス問題を示しているかどうかを特定する方法について説明します。スレッドのタイプと遅延のインジケータについても説明します。スレッドとスレッド遅延
CA Spectrum
パフォーマンスは、部分的に、タイムリーなスレッド割り当てに依存します。スレッド
は、関数または一連の関数実行するコマンドのセットです。各スレッドは、他のスレッドとは独立して実行できます。SpectroSERVER
は、CPU に関連する単一スレッドのアプリケーションですが、内部的にはマルチスレッドのアプリケーションです。独自のプロセス内で、SpectroSERVER
は、ポーリング、ログ記録、通知、タイマなどのタスクを同時に実行する複数のスレッドを作成および管理します。注:
アーカイブ マネージャは独自のスレッドで実行されます。その結果、1 台のサーバ上で複数の CPU (SpectroSERVER
用に 1 つ、別のアーカイブ マネージャ用に 1 つ)を使用できます。ただし、3 つ以上の CPU を導入すると、パフォーマンスが低下することがあります。マルチ スレッド コンテキストでは、いくつかのスレッドが(ユーザの入力、デバイスからの応答、またはデータの取得などを)待機している間、その他のスレッドは動作することができます。スレッドは、データのログ記録、トラップへの応答、および SSAPI アプリケーションへの接続などを実行します。各スレッドは
SpectroSERVER
プロセス内で実行されるため、数マイクロ秒の間、CPU を管理した後、他のスレッドが実行できるように、CPU のコントロールを放棄します。SpectroSERVER
は、ポーリング、ログ記録、クライアントの要求、推論ハンドラ タイマ、推論ハンドラ通知、モデルのアクティブ化、およびモデルの破棄を実行する CA Spectrum
プロセスによって共有されるスレッドのプールを維持します。SpectroSERVER
サブシステムは、処理アクティビティの増加期間中、個々の上限一杯まで、プールからスレッドを使用します。これらの制限によって、1 つの SpectroSERVER
サブシステムがリソースを大量に使用し、利用可能なすべてのスレッドを消費することを防止しますスレッドの共通プールが使い果たされると、新しいスレッドが作成されます。このプールは、増加したアクティビティのニーズを満たすため、増加します。プロセスが必要としなくなったスレッドは、後で使用できるように、共通プールに返されます。スレッドが指定された期間、未使用のままだった場合、そのスレッドはプールから削除され、そのリソースはシステムに戻されます。この処理をエージングといいます。
スレッド遅延
は、スレッドの完了予定時刻と、スレッドが実際に終了した時刻の間隔です。スレッドが終了するまでの時間がだんだん長くなり、未処理のスレッド数が増加すると、スレッド遅延によって問題が発生する可能性があります。CA Spectrum
がスレッド遅延が大きい状態で長期間実行されると、デバイス ポーリング、ログ記録、およびその他のタスクに遅延が発生します。その結果、遅延は CA Spectrum
レスポンス時間に影響を与えます。たとえば、クリティカルなネットワーク デバイスが運用不能になった場合、CA Spectrum
がその問題をネットワーク管理者に通知する前に、遅延が発生します。注:
スレッド遅延は CA Spectrum
のパフォーマンス低下の、原因ではなく症状です。パフォーマンスに影響するスレッドのタイプ
ポーリング、ログ、タイマ、および通知の各スレッドは、
SpectroSERVER
のパフォーマンスに影響を与える可能性があります。パフォーマンス ビューは、これらのスレッドの使用状況と遅延の統計を提供します。注:
デフォルトでは、デバイス モデルの Poll_Log_Ratio 属性は 0 に設定されます。この設定では、ネイティブ CA Spectrum
ログ記録が実質的に無効になります。デバイス、属性、およびポート統計をログ記録するには、ネイティブ メソッド(アーカイブ マネージャ データベースに情報を書き込む方法)の代わりに、SSLogger を使用することを推奨します。SSLogger は、ASCII ファイルに統計を直接ログ記録する CA Spectrum
コマンド ライン アプリケーションです。このタイプのログ記録では、アーカイブ マネージャ データベースの負荷が軽くなり、データをエクスポートする必要がなくなります。SSLogger はまた、ログ記録されるデータのタイプと頻度に関するコントロールが向上します。SSLogger の詳細については、 を参照してください。
- ポーリング スレッドネットワーク上のポーリング デバイス。CA Spectrumは、ネットワークの運用とパフォーマンスを管理するためにポーリングを使用します。ポーリング スレッドを管理するSpectroSERVERコードは、ポーリング マネージャという名前です。
- ログ スレッドネットワークからのデータをCA Spectrumデータベース アーカイブ ファイルにログ記録します。CA Spectrumは、データのログ記録を使用して、操作およびネットワークのパフォーマンスに関する情報を格納します。
- タイマ スレッドウェイクアップ コールとも呼ばれているタイマを登録した推論ハンドラに通知します。
- 通知スレッド推論ハンドラが登録されている属性の変更について、推論ハンドラに通知します。
[スレッド情報]ビューへのアクセス
スレッドのパフォーマンスおよびステータスに関する情報を表示するには、[スレッド情報]ビューにアクセスします。
以下の手順に従います。
- OneClick コンソールの[トポロジ]タブをクリックします。[トポロジ]が開きます。
- SpectroSERVERの[VNM]アイコンをクリックします。
- [コンポーネント詳細]画面で[情報]タブをクリックします。
- [SpectroSERVERコントロール]-[スレッド情報]サブビューを展開します。[スレッド情報]ビューが開きます。
[スレッド情報]ビュー
[スレッド情報]サブビューが、OneClick コンソールの[
SpectroSERVER
コントロール]サブビューに表示されます。このサブビューは、使用中のスレッド、使用可能なスレッド、および SpectroSERVER
プロセス内のスレッドのピーク値を表示します。このサブビューには CA Spectrum
で使用される重要なスレッドのリストが表示されますが、リストは完全なものではありません。このリストで使用可能なスレッドには、以下のタイプが含まれています。- ポーリング スレッドそのモデルの Polling_Interval にあるモデルのポーリングされた属性を読み取るために使用します。
- ログ スレッドPolling_Interval * Poll_Log_Ratio にあるモデルのログ記録された属性の読み取りとログ記録に使用します。
- 通知スレッド推論ハンドラとCA Spectrumクライアント アプリケーションに属性の変更の通知を送信するために使用します。
- IH タイマ スレッド推論ハンドラ内のタイマをトリガするために使用します。
- 破棄スレッド推論ハンドラとクライアント アプリケーションにモデル破棄通知を送信するために使用します。
- モデル アクティブ化スレッド推論ハンドラとクライアント アプリケーションにモデル アクティブ化通知を送信するために使用します。
- 関係アクティブ化スレッド推論ハンドラとクライアント アプリケーションに関係変更通知を送信するために使用します。
- クライアント要求スレッド(*)クライアント アプリケーション要求の処理に使用します。
- マルチ要求スレッド(*)推論ハンドラとクライアント アプリケーションから発信されたマルチモデル要求の処理に使用します。
[スレッド情報]ビューを使って、各スレッド タイプに対して使用可能な値を変更することができます。ただし、値はデフォルト値のまま変更しないことが一般的です。特定の種類のスレッドが常に制限値で実行されていて、CPU サイクルが使用できる場合、制限値を上げると、遅延が緩和されることがあります。ただし、CPU 使用率がすでに 80% を超えている場合、スレッド制限を上げてもスループットは向上しません。これに反して、CPU 使用率が高いときにスレッドの制限値を上げると、スレッドのオーバーヘッドが増加し、スループットが低下することがあります。
使用可能なスレッドがすべて、特定の種類のスレッドに使われていることがわかった場合、CA サポートにご相談ください。