3

さまざまなアプリケーションのパフォーマンステストを行うために、いくつかのロードテストツール(Loadrunner、JMeter、NeoLoad)を使用しています。たとえば、アプリケーションスタックのすべてのレイヤーを監視できるかどうか疑問に思っています。次のデータチェーンがあるとします。

ロードバランサー<-x->アプリケーションサーバー<-x->RMI<-x->Javaアプリケーション<-x->MQ<-x->レガシーアプリケーション<-x->データベース

チェーン内でマークを付けた場合x、たとえば平均応答時間など、監視に関心があります。

明らかに、すべてのエンドポイントにラッパーを作成して統計を収集し、それをロードランナーまたは他のロードテストツールにインポートして、ツールに組み込まれたパフォーマンス統計を使用して裾を傍観することができますが、すでにこれを行っているツール/アプリケーションがあるかもしれません?

そうでない場合、この種の統計を収集するために、どのように進める必要がありますか?

4

2 に答える 2

2

このための標準は、Application Response Measurement (ARM)であると想定されていました。それはまさにあなたが探していたものを実行する API のクロスランゲージ セットでした。問題は、この仕様を実装する製品はすべて、大規模で高価な「エンタープライズ」レベルの監視ツールになる傾向があることです。数週間にわたるインストール、コンサルタント、より多くのインフラストラクチャ、および多くの流行語を考えてみてください。

それでも、これがミッション クリティカルな予算を持つミッション クリティカルなアプリである場合は、これが必要な場合があります。しかし、あまり労力をかけずに十分な機能を備えた独自の製品を構築できる場合があります。その API を引き続き使用したい場合は、クイック検索で少なくとも 1 つのオープン ソース ARM 実装が見つかります。

もう 1 つのオプションは、システムの各層に対して実行できるトランザクションを単純に用意して、一般的な応答性を確認することです。たとえば、静的 Web ページを LB に、no-op tx をアプリ サーバーに、「hello」サーブレットを Java アプリに、メッセージを直接キューに入れるなどを行うことができます。パフォーマンス/負荷テスト中は、これらは、負荷テスト ツールによって直接ヒットされる可能性があります。または、単一の HTTP (RMI?) 呼び出しとしてこれを行うラッパー サーブレット / アプリケーション呼び出しを作成することもできます。これらを 1 分間に数回実行しても、システムに過度の負荷がかかることはありませんが、どの層が遅いかを特定するのに役立ちます。このアプローチの良いところは、本番環境でも機能することです。ただし、セキュリティの問題に注意してください。

問題があることがわかっている単一ユーザーの種類のテスト (たとえば、この tx が「遅い」) では、ネットワーク トレースもかなりうまくいきました。これは非常に面倒ですが、どの層が遅いかがわからない場合は、通常、いくつかのマシンでネットワーク トレースを開始し、1 つの tx を実行すると、システムが何を行っているかを知ることができます。

于 2011-05-24T11:32:24.777 に答える
1

私は過去にこの分解をさまざまな方法で処理してきました。1 つ目は、プロトコル アナライザーのダンプ データを使用して、会話が層 X を離れて層 Y に入る時点を見つける非常に低レベルの方法です。2 つ目の方法は、さまざまな層のログ調査を使用することです。この場合、すべてのコンポーネント (syslog、Rsyslog など) に共通のログ サーバーと、無料で入手できる Microsoft Logparser などの優れたログ解析ツールを使用すると、調査が非常に役立ちます。データベースに格納されたアプリケーションの監査証跡を利用する第 3 の方法。これは、コンシューマー/プロデューサー モデルと、直接接続ではなく情報を渡すためのバスを備えたエンタープライズ サービス バス スタイルのアプリケーションで作業している場合に発生する可能性があります。私が確認した監査証跡は通常、データベースに保存され、アプリケーション インフラストラクチャ全体で個々のトランザクションを追跡できます。ネットワーク デバイスとしてのロード バランサーは、このデバイスのハントから外れている可能性があります。

プロトコル アナライザーまたはログ ルートを使用する場合は、必ずすべてのソース情報デバイスを共通のタイム サーバーに同期してください。コレクター (アナライザー、アプリ ログ) の 1 つをタイム スタンプ ベースでオフにすることは、分析フェーズに入ったときに本当に厄介な経験になる可能性があります。

収集したデータから LoadRunner に移動する方法に関しては、その部分は非常に機械的です。分析プログラムは、外部データポイントをインポートするためのインターフェイスをサポートしています。形式は非常に具体的で、ヘルプとオンライン ドキュメントの両方に記載されています。このインポート プロセスは非常にうまく機能します。ホストから統計を収集するために頻繁に使用する必要があるためです。このホストは、直接の監視アクセス権を持っていませんが、監視対象のテスト インフラストラクチャの一部として含める必要があります。

ジェームズ・プーリー

モデレーター (YahooGroups LoadRunner、Advanced-Loadrunner、GoogleGroups lr-LoadRunner、Linkedin LoadRunner、LoadRunnerByTheHour、SQAForums LoadRunner、WinRunner)

于 2011-05-24T12:35:56.700 に答える