.NET エージェントに関する考慮事項
.NET エージェントのトラブルシューティングを行う場合は、以下の情報を考慮してください。
apmdevops102jp
.NET エージェントのトラブルシューティングを行う場合は、以下の情報を考慮してください。
.NET エージェントに関する考慮事項
.NET エージェントに関する以下の重要な情報を考慮してください。
対象: 9.0
- 以下の問題には NativeProfiler を使用します。
- ネイティブ(C++)と管理対象コード(C#)の混在。
- レイヤ間の低速の COM トランザクション。
注:静的なインスツルメンテーションおよび限定されたサード パーティ インスツルメンテーション エンジンのみがサポートされます。 - Leakhunter .NET によるトレーサの使用。
対象: 9.1
- .NET エージェントのインストーラは、InstallAnywhere から InstallShield(.msi)に変更されました。InstallAnywhere には権限の付与に関する制限があり、現時点では Windows 2008 または Vista に関する手動の手順が不要です。
- NET エージェントは、32 および 64 ビットのアプリケーションをインスツルメントできます。
- スタートアップ バブル: 起動時間が 50 ~ 80% 短縮:
- メモリ内キャッシュによるディレクティブ マッチングの改善が実装されました。DirectiveMatchingCache は introscope.nativeprofiler.directivematching.cache.max.size=5000 によって制御されます。
- このキャッシュの制限を超えると、「cache has been reached」というメッセージが nativeprofiler ログに記録されます。この値を増やすと、メモリに影響します。
- ngen の監視により、.NET エージェントは、.net クラスを ngen イメージ キャッシュにインスツルメントできます。これにより、監視の範囲は向上しますが、起動時のパフォーマンスに影響する可能性があります。これを回避するには、introscope.nativeprofiler.ngen.monitor.enabled=false を設定します。
- Perform オーバーヘッドの削減: 以前は、perform 収集がエージェントごとに報告され、重大なパフォーマンス オーバーヘッドが発生していました。9.1 からは、パフォーマンス収集が「CA APM Perfmon Collector Service」(PerfMonCollecotorAgent.exe)というスタンドアロン サービスになりました。これにより、オーバーヘッドが削減されます。
- .NET 4.0 アプリケーションのサポート
- 「Side-by-Side 実行」機能がサポートされました。これにより、同じプロセス内での複数バージョンの CLR の混在が可能になるとともに、それらが並行して実行されるようになりました。プロファイラのロード オプションは、com.wily.introscope.nativeprofiler.monitor.inprocsxs.multiple.clrs プロパティによって制御されます。デフォルトの「none」は、最初にロードされた CLR がインスツルメントされることを意味します。有効な値は、None、V2/v2.0.50727、および V4/v4.0.30319 です。制限事項:
- 同じホストでの CLR の 2 つのインスタンスについて、個別のエージェント命名が処理されません。たとえば、SampleHost.exe プロセスが 2 つのバージョンの CLR を並行してホストし、その両方がインスツルメントされる場合、エージェントは、依然として、SampleHost.exe と SampleHost.exe%1 のように表示されます。これは、Microsoft の制限が原因です。
- DI が有効になっている場合、多数の CLR の「Side-by-Side 実行」は機能しません。
- 「Side-by-Side 実行」は、ASAP.NET Web アプリケーション(言い換えると、IIS ホスト アプリケーション)には適用されません。この機能は、スタンドアロン アプリケーションについてのみサポートされます。
対象: 9.1.1
- WCF バインディングがサポートされています。
- Enterprise Manager との HTTP および HTTPS 通信がサポートされています。
.NET の動的インスツルメンテーションに関する考慮事項
.NET の動的インスツルメンテーション(DI)に関する以下の重要な情報を考慮してください。
対象: 9.1
- .NET DI では、「一時インスツルメンテーションをすべての呼び出されたメソッドに追加」および「インスツルメンテーション レベルの変更」設定オプションはサポートされていません。
- Java DI で「永続化」オプションを選択した場合、.pbd ファイルが作成され、新しいインスツルメンテーションがただちに適用されます。ただし、.NET DI では、アプリケーションを再起動した後に Change_<timestamp>.pbd ファイルが作成され、新しいインスツルメンテーションが適用されます。
- デフォルトでは、DI は無効になっています。introscope.agent.remoteagentdynamicinstrumentation.enabled=false
- Java DI では、Workstation Investigator からのトレーサ グループを無効または有効にできます。このアクションは、.NET DI ではサポートされていません。
- Java DI では、再ロードまたは再コンパイルのためにクラスを再インスツルメントできます。ただし、このアクションは、.NET DI ではサポートされていません。
- Workstation Investigator では新しいインスツルメンテーションは Dynamicinstrument ノードの下に作成できます。