国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何解決 Elasticsearch 查詢(xún)緩慢的問(wèn)題以獲得更好的用戶(hù)體驗(yàn)

這篇具有很好參考價(jià)值的文章主要介紹了如何解決 Elasticsearch 查詢(xún)緩慢的問(wèn)題以獲得更好的用戶(hù)體驗(yàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

作者:Philipp Kahr

如何解決 Elasticsearch 查詢(xún)緩慢的問(wèn)題以獲得更好的用戶(hù)體驗(yàn),Elasticsearch,Observability,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,運(yùn)維,可用性測(cè)試

Elasticsearch Service 用戶(hù)的重要注意事項(xiàng):目前,本文中描述的 Kibana 設(shè)置更改僅限于 Cloud 控制臺(tái),如果沒(méi)有我們支持團(tuán)隊(duì)的手動(dòng)干預(yù),則無(wú)法進(jìn)行配置。 我們的工程團(tuán)隊(duì)正在努力消除對(duì)這些設(shè)置的限制,以便我們的所有用戶(hù)都可以啟用內(nèi)部 APM。 本地部署不受此問(wèn)題的影響。

對(duì)于任何使用 Elasticsearch 作為搜索引擎的人來(lái)說(shuō),識(shí)別查詢(xún)并排除查詢(xún)故障是一項(xiàng)需要掌握的關(guān)鍵技能。 無(wú)論是電子商務(wù)、可觀(guān)察性還是面向工作場(chǎng)所的搜索解決方案,緩慢的 Elasticsearch 都會(huì)對(duì)用戶(hù)體驗(yàn)產(chǎn)生負(fù)面影響。

要查明慢速 Elasticsearch 查詢(xún),你可以使用慢速日志,它捕獲在特定閾值運(yùn)行的查詢(xún)。 正確設(shè)置慢日志閾值本身就是一個(gè)挑戰(zhàn)。 例如,在滿(mǎn)負(fù)載下花費(fèi) 500 毫秒的查詢(xún)可能是可接受的,但在低負(fù)載下相同的查詢(xún)可能是不可接受的。 慢日志不區(qū)分并記錄 500 毫秒以上的所有內(nèi)容。 慢日志很好地完成了它的工作,你可以根據(jù)閾值捕獲不同級(jí)別的粒度。 相反,跟蹤可以查看所有查詢(xún),確定有多少查詢(xún)?cè)谔囟ㄩ撝祪?nèi)。

應(yīng)用程序性能監(jiān)控 (APM) 不再僅限于你的應(yīng)用程序。 使用 Elasticsearch 中的檢測(cè),我們現(xiàn)在可以將 Elasticsearch 添加為成熟的服務(wù),而不是對(duì)應(yīng)用程序堆棧的依賴(lài)。 通過(guò)這種方式,我們可以獲得比慢速日志更細(xì)致的性能視圖。

對(duì)于以下示例,我們的數(shù)據(jù)語(yǔ)料庫(kù)是 OpenWebText,它提供大約 40GB 的純文本和大約 800 萬(wàn)個(gè)單獨(dú)文檔,這些文檔在具有 32GB RAM 的 M1 Max Macbook 上本地運(yùn)行。

讓我們開(kāi)始吧!

在 Elasticsearch 中激活跟蹤是通過(guò)靜態(tài)設(shè)置(在 elasticsearch.yml 中配置)和動(dòng)態(tài)設(shè)置完成的,可以在運(yùn)行時(shí)使用 PUT _cluster/settings 命令進(jìn)行切換,其中動(dòng)態(tài)設(shè)置之一是采樣率。 某些設(shè)置(例如采樣率)可以在運(yùn)行時(shí)切換。 在 elasticsearch.yml 中我們要設(shè)置以下內(nèi)容:

tracing.apm.enabled: true
tracing.apm.agent.server_url: "url of the APM server"

秘密令牌(或 API 密鑰)必須位于 Elasticsearch 密鑰庫(kù)中。 使用以下命令 elasticsearch-keystore add Tracing.apm.secret_token 或 Tracing.apm.api_key 應(yīng)該可以在 <your elasticsearch install directory>/bin/elasticsearch-keystore 中找到密鑰庫(kù)工具。 之后,你需要重新啟動(dòng) Elasticsearch。 有關(guān)跟蹤的更多信息可以在我們的跟蹤文檔中找到。

一旦 APM 處于活動(dòng)狀態(tài),我們就可以查看 Kibana 中的 APM 視圖,并看到 Elasticsearch 自動(dòng)捕獲各種 REST API 端點(diǎn)。 在這里,我們主要關(guān)注 POST /{index}/_search 調(diào)用,看看我們能從中獲得什么。

如何解決 Elasticsearch 查詢(xún)緩慢的問(wèn)題以獲得更好的用戶(hù)體驗(yàn),Elasticsearch,Observability,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,運(yùn)維,可用性測(cè)試

通過(guò)直接檢查 GET /{index}/_search 框上的簡(jiǎn)單查詢(xún),我們看到以下瀑布細(xì)分。 其中包含內(nèi)部跨度(span),可以更深入地了解 Elasticsearch 在幕后所做的事情。 我們看到這次搜索的總持續(xù)時(shí)間(86 毫秒)。

如何解決 Elasticsearch 查詢(xún)緩慢的問(wèn)題以獲得更好的用戶(hù)體驗(yàn),Elasticsearch,Observability,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,運(yùn)維,可用性測(cè)試

查詢(xún)附帶的元數(shù)據(jù)包括有關(guān) HTTP 標(biāo)頭、用戶(hù)代理、Elasticsearch 節(jié)點(diǎn)位置(云提供商元數(shù)據(jù)、主機(jī)名、容器信息)、一些系統(tǒng)信息和 URL 詳細(xì)信息的大量信息。 使用一些基本的交易信息,我們可以創(chuàng)建一個(gè)透鏡圖,繪制平均交易持續(xù)時(shí)間,并允許我們查看是否存在上升或下降趨勢(shì)。

我們的搜索應(yīng)用程序

很高興不再需要使用慢日志! 我可以確定交易持續(xù)時(shí)間并確定在任何閾值下回答了多少搜索。 然而,有一個(gè)挫折 —— Elasticsearch 不會(huì)捕獲發(fā)送的查詢(xún)(查詢(xún)的具體內(nèi)容是什么),因此我們知道查詢(xún)花費(fèi)了很長(zhǎng)時(shí)間,但我們不知道查詢(xún)是什么。

讓我們測(cè)試一個(gè)示例搜索應(yīng)用程序。 在本例中,我們將使用一個(gè)簡(jiǎn)單的 Flask 應(yīng)用程序,其中包含兩個(gè)路由:search_single 和 search_phrase,它們將表示 Elasticsearch 中的 match 和 match_phrase 查詢(xún)。 例如,我們可以使用以下查詢(xún):

{
  "query": {
    "match": {
      "content": "support"
    }
  }
}

{
  "query": {
    "match_phrase": {
      "content": "support protest"
    }
  }
}

以下 Flask 代碼實(shí)現(xiàn)了 search_single 路由。 search_phrase 非常相似,只是它使用 match_phrase 而不是 match。

@app.route("/search_single", methods=["GET"])
def search_single():
    query = request.args.get("q", "")
    if not query.strip():
        return jsonify({"error": "No search query provided"}), 400
    try:
        result = es.search(
            index=ES_INDEX, query={"match": {"content": query}}
        )

        hits = result["hits"]["hits"]
        response = []
        for hit in hits:
            response.append(
                {
                    "score": hit["_score"],
                    "content": hit["_source"]["content"],
                }
            )
        
        return jsonify(response)

準(zhǔn)備就緒后,我現(xiàn)在可以調(diào)用 curl -XGET “http://localhost:5000/search_single?q='microphone'” 來(lái)搜索術(shù)語(yǔ) “microphone”。

我們主要將 APM 添加到我們的搜索應(yīng)用程序中進(jìn)行觀(guān)察,但我們的 APM 代理捕獲傳出請(qǐng)求并使用元數(shù)據(jù)信息豐富它們。 在我們的例子中,span.db.statement 包含 Elasticsearch 查詢(xún)。 在下面這個(gè)例子中,有人搜索了 window.

如何解決 Elasticsearch 查詢(xún)緩慢的問(wèn)題以獲得更好的用戶(hù)體驗(yàn),Elasticsearch,Observability,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,運(yùn)維,可用性測(cè)試

將它們拼湊在一起

在我的 Flask 服務(wù)中,我將查詢(xún)大小設(shè)置為 5,000,這意味著 Elasticsearch 應(yīng)在單個(gè) JSON 響應(yīng)中為我提供最多 5,000 個(gè)匹配文檔。 這是一個(gè)很大的數(shù)字,并且大部分時(shí)間都花在從磁盤(pán)檢索這么多文檔上。 將其更改為前 100 個(gè)文檔后,我可以通過(guò)比較快速識(shí)別儀表板中發(fā)生的情況。

在 APM 視圖中查看 transaction 并激活關(guān)鍵路徑的實(shí)驗(yàn)室功能會(huì)創(chuàng)建一個(gè)覆蓋層,向我們顯示應(yīng)用程序?qū)r(shí)間花在哪里。

如何解決 Elasticsearch 查詢(xún)緩慢的問(wèn)題以獲得更好的用戶(hù)體驗(yàn),Elasticsearch,Observability,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,運(yùn)維,可用性測(cè)試

之后,我使用字段 transaction.duration.us、es_query_took、transaction.name 創(chuàng)建了一個(gè)儀表板。 一般 KQL 過(guò)濾器包含 service.name、processor.event: transaction、transaction.name: POST /{index}/_search。

附加提示:轉(zhuǎn)到數(shù)據(jù)視圖管理 > 選擇包含 APM 數(shù)據(jù)流的數(shù)據(jù)視圖 > 選擇 transaction.duration.us 字段 > 并將格式更改為 duration。 現(xiàn)在它會(huì)自動(dòng)以人類(lèi)可讀的輸出而不是 microseconds 的形式呈現(xiàn)它。

利用 Lens 注釋?zhuān)╝nnotation)功能,我們可以在中間 Lens 中看到,更改為 100 個(gè)文檔使平均搜索 transaction 量下降了很多。 不僅如此,查看右上角的記錄總數(shù)。 由于我們可以更快地搜索,因此我們有更高的吞吐量! 我真的很喜歡直方圖,因此我在頂行的中間創(chuàng)建了一個(gè)直方圖,其中 X 軸為交易持續(xù)時(shí)間,Y 軸為記錄數(shù)。 此外,APM 還提供指標(biāo),因此我們可以隨時(shí)確定發(fā)生了多少 CPU% 使用情況以及 JVM 堆、非堆使用情況、線(xiàn)程計(jì)數(shù)和更多有用信息。

如何解決 Elasticsearch 查詢(xún)緩慢的問(wèn)題以獲得更好的用戶(hù)體驗(yàn),Elasticsearch,Observability,Elastic,elasticsearch,大數(shù)據(jù),搜索引擎,運(yùn)維,可用性測(cè)試

?

結(jié)論

這篇博文向您展示了將 Elasticsearch 作為儀表化應(yīng)用程序并更輕松地識(shí)別瓶頸是多么重要。 此外,你還可以使用事務(wù)持續(xù)時(shí)間作為異常檢測(cè)的指標(biāo),為你的應(yīng)用程序進(jìn)行 A/B 測(cè)試,并且再也不用懷疑 Elasticsearch 是否感覺(jué)更快,因?yàn)槟悻F(xiàn)在有數(shù)據(jù)可以回答這個(gè)問(wèn)題。 此外,從用戶(hù)代理收集到查詢(xún)的所有元數(shù)據(jù)都可以幫助你排除故障。

可以從此處導(dǎo)入儀表板和數(shù)據(jù)視圖。

警告
Elasticsearch 內(nèi)部的 transaction duration 存在問(wèn)題。 此問(wèn)題已在即將發(fā)布的 8.9.1 版本中修復(fù)。 在此之前,transaction 使用錯(cuò)誤的時(shí)鐘,這會(huì)擾亂整體持續(xù)時(shí)間。

本文中描述的任何特性或功能的發(fā)布和時(shí)間安排均由 Elastic 自行決定。 當(dāng)前不可用的任何特性或功能可能無(wú)法按時(shí)交付或根本無(wú)法交付。

原文:How to troubleshoot slow Elasticsearch queries for better user experience | Elastic Blog文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-634226.html

到了這里,關(guān)于如何解決 Elasticsearch 查詢(xún)緩慢的問(wèn)題以獲得更好的用戶(hù)體驗(yàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【問(wèn)題解決】ElasticSearch分頁(yè)查詢(xún)時(shí)數(shù)據(jù)順序錯(cuò)亂/不一致的問(wèn)題

    問(wèn)題描述: 使用ElasticSearch分頁(yè)查詢(xún)時(shí),每次輸入同樣的分頁(yè)參數(shù)以及查詢(xún)條件,得到的結(jié)果不一致的問(wèn)題。 問(wèn)題分析: ElasticSearch中索引可能是由多個(gè)分片構(gòu)成的,并且每個(gè)分片可能擁有多個(gè)副本,其對(duì)應(yīng)的設(shè)置時(shí)索引建立時(shí)的設(shè)置。 number_of_shards:索引擁有多少個(gè)分片 n

    2024年02月02日
    瀏覽(28)
  • APP安卓開(kāi)發(fā)之Android Studio從安裝到創(chuàng)建項(xiàng)目(一鍵解決gradle下載緩慢以及寫(xiě)代碼沒(méi)提示問(wèn)題,包含如何創(chuàng)建手機(jī)模擬器)教程

    APP安卓開(kāi)發(fā)之Android Studio從安裝到創(chuàng)建項(xiàng)目(一鍵解決gradle下載緩慢以及寫(xiě)代碼沒(méi)提示問(wèn)題,包含如何創(chuàng)建手機(jī)模擬器)教程

    選擇NEXT 選擇NEXT 選擇要安裝的地址,然后選擇NEXT 選擇Install 先啟動(dòng)剛安裝好的Android Studio 選擇Do not import settings,然后選擇OK 選擇Cancel 先選擇D\\\'ont send,然后選擇NEXT 這里選擇Custom,然后NEXT 選擇Android Studio自帶JDK的安裝位置,然后NEXT 選擇一個(gè)自己喜歡的主題顏色,然后NEXT 選

    2024年04月29日
    瀏覽(37)
  • ElasticSearch - DSL查詢(xún)文檔語(yǔ)法,以及深度分頁(yè)問(wèn)題、解決方案

    ElasticSearch - DSL查詢(xún)文檔語(yǔ)法,以及深度分頁(yè)問(wèn)題、解決方案

    目錄 一、DSL 查詢(xún)文檔語(yǔ)法 前言 1.1、DSL Query 基本語(yǔ)法 1.2、全文檢索查詢(xún) 1.2.1、match 查詢(xún) 1.2.2、multi_match 1.3、精確查詢(xún) 1.3.1、term 查詢(xún) 1.3.2、range 查詢(xún) 1.4、地理查詢(xún) 1.4.1、geo_bounding_box 1.4.2、geo_distance 1.5、復(fù)合查詢(xún) 1.5.1、相關(guān)性算分 1.5.2、function_score 1.5.3、boolean query 1.6、搜索

    2024年02月07日
    瀏覽(24)
  • Elasticsearch 8.X 聚合查詢(xún)下的精度問(wèn)題及其解決方案

    Elasticsearch 8.X 聚合查詢(xún)下的精度問(wèn)題及其解決方案

    咕泡同學(xué)提問(wèn):我在看runtime文檔的時(shí)候做個(gè)測(cè)試, agg求avg的時(shí)候不管是double還是long,數(shù)據(jù)都不準(zhǔn)確,這種在生產(chǎn)環(huán)境中如何解決??? 上述問(wèn)題可以歸類(lèi)為:Elasticsearch聚合查詢(xún)下的 精度 問(wèn)題。 在日常的數(shù)據(jù)處理工作中,我們經(jīng)常會(huì)遇到使用Elasticsearch進(jìn)行大數(shù)據(jù)查詢(xún)、統(tǒng)計(jì)

    2024年02月16日
    瀏覽(20)
  • 解決 Jenkins 性能緩慢的問(wèn)題~轉(zhuǎn)

    解決 Jenkins 性能緩慢的問(wèn)題~轉(zhuǎn)

    Docker中文社區(qū) ?? 計(jì)算機(jī)技術(shù)與軟件專(zhuān)業(yè)技術(shù)資格持證人 2 人贊同了該文章 沒(méi)有什么比緩慢的持續(xù)集成系統(tǒng)更令人沮喪的了。它減慢了反饋循環(huán)并阻止代碼快速投入生產(chǎn)。雖然像使用性能更好的服務(wù)器可以為您爭(zhēng)取時(shí)間,但您最終必須投資于維持持續(xù)集成工作流程的成本。

    2024年02月03日
    瀏覽(18)
  • 解決ECharts官網(wǎng)打開(kāi)緩慢的問(wèn)題

    解決ECharts官網(wǎng)打開(kāi)緩慢的問(wèn)題

    本章我們將解決在Windows系統(tǒng)中打開(kāi)ECharts官網(wǎng)緩慢的問(wèn)題。 正常情況下,我們?cè)赪indows環(huán)境中打開(kāi)ECharts官網(wǎng)可能會(huì)遇到非常緩慢的情況,一直處于加載中,甚至打不開(kāi),此時(shí)我們需要做一些處理即可。 我們打開(kāi)hosts文件,在文件最后追加上如下設(shè)置即可: PS: hosts文件所在文

    2024年02月16日
    瀏覽(17)
  • 解決Ubuntu下載速度或更新速度緩慢問(wèn)題

    1、備份原來(lái)的源文件 2、新建一個(gè)sources.list文件 3、更新apt軟件源 4、修改損壞的依賴(lài)包,卸載出錯(cuò)的包,重新下載新的正確的版本 5、更新 Ubuntu 系統(tǒng)自帶的源文件,都是國(guó)外的源網(wǎng)址,在國(guó)內(nèi)下載安裝升級(jí)源或者依賴(lài)的時(shí)候,都比較慢,更換國(guó)內(nèi)的源地址,輕松搞定此問(wèn)題

    2024年02月06日
    瀏覽(17)
  • 如何更好的分析潛在人脈?聊聊華為云圖引擎GES的Cypher子查詢(xún)

    如何更好的分析潛在人脈?聊聊華為云圖引擎GES的Cypher子查詢(xún)

    摘要: 本文以華為云圖引擎 GES 為例,來(lái)介紹如何使用圖查詢(xún)語(yǔ)言 Cypher 表達(dá)一些需要做數(shù)據(jù)局部遍歷的場(chǎng)景。 本文分享自華為云社區(qū)《使用 Cypher 子查詢(xún)進(jìn)行圖探索 -- 以華為云圖引擎 GES 為例》,作者:蜉蝣與海。 在圖數(shù)據(jù)庫(kù)/圖計(jì)算領(lǐng)域,很多查詢(xún)可以使用圖查詢(xún)語(yǔ)言Cy

    2024年02月04日
    瀏覽(18)
  • 如何優(yōu)化因?yàn)楦吡猎斐傻拇笪谋荆ù笞侄危z索緩慢問(wèn)題

    如何優(yōu)化因?yàn)楦吡猎斐傻拇笪谋荆ù笞侄危z索緩慢問(wèn)題

    首先還是說(shuō)一下背景,工作中用到了 elasticsearch 的檢索以及高亮展示,但是索引中的 content 字段是讀取的大文本內(nèi)容,所以后果就是索引的單個(gè)字段很大,造成單獨(dú)檢索請(qǐng)求的時(shí)候速度還可以,但是加入高亮之后檢索請(qǐng)求的耗時(shí)就非常的慢了。所以本文從 更換高亮器類(lèi)型 的

    2024年02月11日
    瀏覽(16)
  • 為什么Windows 10電腦運(yùn)行緩慢?如何解決?

    為什么Windows 10電腦運(yùn)行緩慢?如何解決?

    ?雖然電腦是大家生活中的常用工具,但它經(jīng)常會(huì)出現(xiàn)一些煩人的小問(wèn)題,比如Windows 10系統(tǒng)在長(zhǎng)時(shí)間使用后運(yùn)行會(huì)變的緩慢。這時(shí)你必須等待一會(huì)才能打開(kāi)/關(guān)閉電腦、打開(kāi)和訪(fǎng)問(wèn)文件夾或軟件,那要如何優(yōu)化Windows?10電腦來(lái)解決運(yùn)行緩慢的問(wèn)題呢??? 不用擔(dān)心,請(qǐng)繼續(xù)往下

    2024年02月10日
    瀏覽(32)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包