2016-05-02 5 views
1

Azure Search Basicインスタンスでエラーが発生しています。私たちのインデックスは1,544文書しかなく、サイズは28MBなので、検索は非常に高速になると思います。トラブルシューティングAzure検索パフォーマンスが悪い

Azure Application Insightsは、平均応答時間2.1秒、標準偏差35.8秒(!)の過去12時間以内にAzure Searchへの4.7Kコールを報告しています。

私はマニュアルテスト中に個人的に不安定なパフォーマンスを見ています。クエリは一瞬に20秒以上かかることがあります。その後、ちょうど同じクエリが100ミリ秒未満を取ることになります。

クエリは非常に簡単です。ここでは例のクエリ文字列です:削除

APIバージョン= 2015年2月28日& APIキー= &検索= &%の24count =真&%24top = 10 &%24skip = 0 & searchMode =すべて& scoringProfile = FieldBoost &%24orderby = sortableTitle

さらにこの問題のトラブルシューティングを行うにはどうすればよいですか?

答えて

2

まず、あなたはあなたの数字に基づいて、つまり1秒あたり〜1回のクエリであることを意味するかなり均等なクエリ分布を持っていると仮定します。それは正しいと思いますか?そうでなければ、クエリの大規模なスパイクが見られます。クエリの負荷を処理するのに十分なレプリカ(インデックスのコピー)がない可能性が非常に高いです。単一のレプリカベーシックサービスは、1桁の低いQPSを処理することを目標としています(ただし、クエリの複雑さや単純さに基づいて大幅に異なる可能性があります)。サービスの限界を超えた場合、待ち時間が確実に問題になる可能性があります。これを掘り下げるには、Azure Search Traffic Analyticsを使用して、さまざまな時間枠での1秒あたりのクエリ数や、内部で見ている待ち時間指標などのデータを含む検索指標を公開することができます。

さらに重要なことは、できるだけHTTP接続を再利用し、可能であればHTTP接続プールを利用してください。ちなみに、Azure Search SDKを使用している場合、.NETでは、単一のHttpClientインスタンスまたはSearchIndexClientインスタンスを再利用する必要があります。

+0

トラフィックはさまざまなので、それよりも集中しています。今日の午前7時から午後8時までのピーク時には、依然として1 QPS未満の2270コールがあった。リクエストはユーザーのブラウザから直接送信されるため、接続をプールする機会はありません。 Free TierがBasicよりも優れたパフォーマンスを提供する可能性はありますか?私はより多くのデータを収集するために分析を有効にしました。 –

+0

はい、フリーでのパフォーマンスが時折向上することもありますが、フリーではマルチテナントシステムが使用可能であることに注意する必要があります。これは、フリーを使用する他のユーザーの使用がサービスの全体的なパフォーマンス。基本と標準は専用のリソースであり、一貫性のあるレベルのパフォーマンスを確認する必要があります。実際、検索トラフィック分析のデータを見て、一定のレベルのトラフィックに対して一貫性のないパフォーマンスが見られる場合は、これをもっと深く検討したいと考えています。 –

+0

この時点では、月曜日の朝に一時的な問題のように見えます。私は、分析可能な情報を残しておき、実行可能なデータを取り込めるかどうかを報告します。 –

0

Azure Searchフォーラムで、より多くのデータとposted my resultsを収集しました。

私たちが単一の基本インスタンスを実行し、Azure Searchチームによるコードの展開が原因で、サービスの中断/劣化が短時間(私の経験では数分)起こるためです。

私は高すぎる2つの基本的なインスタンスを実行していることがわかります。 Googleの検索トラフィックでは、可用性を除いて2つのインスタンスが保証されていません。

無料のティアは一般的に1つの基本インスタンスよりも可用性が高いことがフォーラムからわかっています。その結果、私はfeedback itemを提出しました.1つの専用インスタンスより高い可用性を維持しながら、フリー層より多くのストレージを提供する有料の共有層を提案しています。

関連する問題