0

クライアントから Analysis Services への往復 MDX クエリのパフォーマンスを分解したいと考えています。特に、個々のクエリを識別/区別し、各クエリにかかる時間を記録することを検討しています。

  • クライアントから IIS への XMLA over HTTP メッセージ
  • データ ポンプから Analysis Services への XMLA over TCP/IP メッセージ
  • Analysis Services から Data Pump への応答
  • IIS からクライアントへの応答

クエリのライフサイクルのボトルネックを特定するのに役立つ他のデータポイントを受け入れます。

私の会社では、定期的な SSAS DMV データ収集、PerfMon、Flight Recorder、Splunk、SQL Sentry などのソフトウェアの組み合わせをテストしました。私たちはそれをすべて結びつけるのに苦労しています。

4

1 に答える 1

1

主な問題の 1 つは、おそらく時間の重複があることです。IIS の msmdpump は、http 要求から XMLA の最初の数バイトが利用可能になるとすぐに、最初のバイトを AS サーバーに送信し始めることができます。逆に、AS サーバーからの応答の最初の数バイトが利用可能になるとすぐに、メッセージの送信を開始する可能性があります。

実際には、msmdpump と AS サーバー間の通信は、msmdpump とクライアントの間で送信される XML のバイナリ バージョンであるため、メッセージの後半の情報を知らなくても簡単に変換できます。プロトコルの詳細については、http://sqlblog.com/blogs/mosha/archive/2005/12/02/analysis-services-2005-protocol-xmla-over-tcp-ip.aspxを参照してください。

時間を追跡するために、私のアプローチは低レベルのものです。IIS を実行しているコンピューターで Wireshark ( http://www.wireshark.org/ ) を実行し、クライアントと IIS の間の http フレームのみにフィルターをかけます。 IIS コンピュータと AS サーバー間のフレーム。フレームの内容は多かれ少なかれ無関係ですが、リクエストの最初と最後のパッケージのタイム スタンプを確認でき、さまざまな通信の所要時間を概算できます。また、すべてのネットワーク トラフィックのログ記録を 1 台のコンピューターで行うことで、すべてのコンピューターのクロックを正確に同期させる必要がなくなります。

于 2013-11-05T22:32:38.487 に答える