azure - 对 Azure 搜索性能不佳进行故障排除

标签 azure azure-cognitive-search

我发现 Azure 搜索基本实例的性能不稳定。我们的索引只有 1,544 个文档,大小为 28MB,因此我预计搜索速度会非常快。

Azure Application Insights 报告过去 12 小时内从我们的应用程序对 Azure 搜索进行了 4.7K 次调用,平均响应时间为 2.1 秒,标准差为 35.8 秒(!)。

我个人在手动测试期间发现性能不稳定。一个查询可能会在某个时刻花费 20 秒以上,然后稍晚一点,相同的查询将花费不到 100 毫秒。

查询非常简单。下面是一个查询字符串示例:

api-version=2015-02-28&api-key=已删除&search=&%24count=true&%24top=10&%24skip=0&searchMode=all&scoringProfile=FieldBoost&%24orderby=sortableTitle

我可以采取什么措施来进一步解决此问题?

最佳答案

首先,我假设您的查询分布相当均匀,这意味着根据您的数字,每秒大约只有 1 个查询。这听起来正确吗?如果没有,并且您看到大量查询峰值,则很可能您没有足够的副本(索引副本)来处理查询负载。请注意,单个副本基本服务的目标是处理低个位数的 QPS(尽管这可能会根据查询的复杂性或简单性而有很大差异)。如果超出服务的限制,延迟肯定会成为一个问题。深入研究这个问题的一个好方法是使用 Azure Search Traffic Analytics它可以公开搜索指标,其中包括各种时间范围内每秒查询数等数据以及我们在内部看到的延迟指标。

此外,最重要的是,请尝试尽可能地重用 HTTP 连接,并在可能的情况下利用 HTTP 连接池。顺便说一句,在 .NET 中,您应该重用单个 HttpClient 实例,如果使用我们的 Azure 搜索 SDK,则应重用 SearchIndexClient 实例。

关于azure - 对 Azure 搜索性能不佳进行故障排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36989488/

相关文章:

c# - 检测到 Azure 网站环境; key 不会静态加密 - Dot Net Core 2.1 - Azure Web App

powershell - Azure CLI 异常处理

azure - 不存在与模板匹配的 OData 路由 - 在 Azure intune 中添加 CorporateIdentifier

Azure 搜索索引器无法检索从 DocumentDB 中的文档归档的 GeographyPoint

azure - 为 Azure 搜索建立 Blob 内容索引时,"Content"太大

c# - 使用 Azure 搜索服务拉近距离

c# - 具有多个筛选器的 Azure 搜索服务

powershell - Azure Service Fabric 群集更新

针对不受支持的区域的 Azure Maps API 解决方法

Azure 搜索。分页时如何获取结果计数