最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Elasticsearch寫入瓶頸導(dǎo)致skywalking大盤空白

 更新時間:2022年02月28日 14:34:45   作者:kl  
這篇文章主要為大家介紹了Elasticsearch寫入瓶頸導(dǎo)致skywalking大盤空白的解決方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步

前言

繼上次skywalking出故障《解析Arthas協(xié)助排查線上skywalking不可用問題》不到一個月,線上skywalking又出毛病了。又是大盤空白,trace列表最近的數(shù)據(jù)都查詢不出來,但是時間稍久的數(shù)據(jù)就能查詢出來,如一天前的數(shù)據(jù)有,一個小時前的數(shù)據(jù)就沒有,這個只是表象,最終查明癥結(jié)是ES的服務(wù)寫入瓶頸,導(dǎo)致寫入寫入數(shù)據(jù)的線程阻塞導(dǎo)致的。下面是排錯過程以及解決方案說明。

問題定位

工具還是那個工具Arthas,不了解的可以翻閱我之前的博文,這里不多說明Arthas。不過這次我們應(yīng)用了一個新的進(jìn)階指令thread,它可以查看當(dāng)前線程信息,查看線程的堆棧。當(dāng)skywalking大盤沒有數(shù)據(jù)時,使用如下指令:

thread -b

THREAD -B, 找出當(dāng)前阻塞其他線程的線程

有時候我們發(fā)現(xiàn)應(yīng)用卡住了, 通常是由于某個線程拿住了某個鎖, 并且其他線程都在等待這把鎖造成的。 為了排查這類問題, arthas提供了thread -b, 一鍵找出那個罪魁禍?zhǔn)住W詈蟮玫饺缦碌慕Y(jié)果:

如上圖,相信大家已經(jīng)看到問題所在了,重點在紅色字體箭頭指向的部分,不得不說Arthas做的太棒了。癥結(jié)就是ES的批量寫入失敗線程阻塞了。后從社區(qū)了解到是因為ES寫入瓶頸,導(dǎo)致skywalking在批量寫入索引的時候線程阻塞了。導(dǎo)致阻塞的那段時間的數(shù)據(jù)都沒有寫到ES,然后查詢是沒有問題的,表象就是skywalking的大盤空白也查詢不到近期的數(shù)據(jù)了。

解決方案

臨時方案,SKYWALKING參數(shù)調(diào)優(yōu)

skywalking寫入ES的操作是使用了ES的批量寫入接口。我們可以調(diào)整這些批量的維度。盡量降低ES索引的寫入頻率,如:

elasticsearch:
    clusterNodes: 192.168.20.221:9200 indexShardsNumber: 2 indexReplicasNumber: 0 # Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html bulkActions: 4000 # Execute the bulk every 2000 requests bulkSize: 40 # flush the bulk every 20mb flushInterval: 30 # flush the bulk every 10 seconds whatever the number of requests concurrentRequests: 2 # the number of concurrent requests receiver-register: default:
receiver-trace: default:
    bufferPath: ../trace-buffer/ # Path to trace buffer files, suggest to use absolute path bufferOffsetMaxFileSize: 500 # Unit is MB bufferDataMaxFileSize: 1000 # Unit is MB bufferFileCleanWhenRestart: false

調(diào)整bulkActions默認(rèn)2000次請求批量寫入一次改到4000次。批量刷新從20M一次到40M一次。這種配置調(diào)優(yōu)確實生效了,重啟服務(wù)后兩三天了都沒有出現(xiàn)過ES寫入阻塞的問題。不過這種設(shè)置只是暫時的,你只能期望流量不突發(fā),或者應(yīng)用不增加。一旦遇到突發(fā)流量和應(yīng)用的增加,ES寫入瓶頸還是會凸顯出來。而且參數(shù)設(shè)置過大帶來了一個新的問題,就是數(shù)據(jù)寫入延時會比較大,一次服務(wù)交互發(fā)生的trace隔好久才能在skywalking頁面上查詢到。所以最終解決方案是優(yōu)化ES的寫入性能。

最終方案-優(yōu)化ES的寫入性能

如果是自建Elasticsearch服務(wù),在基礎(chǔ)大數(shù)據(jù)團隊負(fù)責(zé)搜索引擎 Elasticsearch 優(yōu)化和開發(fā),博文里分享了很多可調(diào)優(yōu)配置的參數(shù)。不過我們這邊綜合運維人力和支出方面的考慮,決定采用阿里云提供的Elasticsearch,不過這帶來了一個新的問題,阿里云的ES服務(wù)不論內(nèi)外網(wǎng)都需要Http Basic認(rèn)證,但是目前的skywalking并沒有提供這種支持。

結(jié)語

skywalking是一款非常不錯的開源apm產(chǎn)品,很多功能特性甚至可以和商業(yè)的apm產(chǎn)品一爭高下,比如trace查詢等功能。我們線上的skywalking沒有全面鋪開去接入應(yīng)用,但是問題還是發(fā)生了不少,希望這些線上的踩坑排坑經(jīng)驗?zāi)軒砀嗟膮⒖純r值。關(guān)于Elasticsearch 帶Http Basic 認(rèn)證skywalking不支持的問題,將在下文詳描述去解決 

以上就是Elasticsearch寫入瓶頸導(dǎo)致skywalking大盤空白的詳細(xì)內(nèi)容,更多關(guān)于Elasticsearch寫入skywalking空白的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java打包成可執(zhí)行的jar或者exe的詳細(xì)步驟

    java打包成可執(zhí)行的jar或者exe的詳細(xì)步驟

    Java程序完成以后,對于Windows操作系統(tǒng),習(xí)慣總是想雙擊某個exe文件就可以直接運行程序,現(xiàn)我將一步一步的實現(xiàn)該過程.最終結(jié)果是:不用安裝JRE環(huán)境,不用安裝數(shù)據(jù)庫,直接雙擊一個exe文件,就可以運行程序
    2014-04-04
  • java編程實現(xiàn)獲取服務(wù)器IP地址及MAC地址的方法

    java編程實現(xiàn)獲取服務(wù)器IP地址及MAC地址的方法

    這篇文章主要介紹了java編程實現(xiàn)獲取機器IP地址及MAC地址的方法,實例分析了Java分別針對單網(wǎng)卡及多網(wǎng)卡的情況下獲取服務(wù)器IP地址與MAC地址的相關(guān)技巧,需要的朋友可以參考下
    2015-11-11
  • Java中遞歸構(gòu)建樹形結(jié)構(gòu)的算法解讀

    Java中遞歸構(gòu)建樹形結(jié)構(gòu)的算法解讀

    該文章介紹了如何使用Java遞歸算法構(gòu)建樹形結(jié)構(gòu),通過定義樹節(jié)點類,遍歷扁平數(shù)據(jù)列表,將節(jié)點加入對應(yīng)父節(jié)點的子節(jié)點列表中,實現(xiàn)從扁平數(shù)據(jù)到樹形結(jié)構(gòu)的轉(zhuǎn)換
    2025-03-03
  • JAVA 時間區(qū)間的字符串合法性驗證

    JAVA 時間區(qū)間的字符串合法性驗證

    需要對獲得的諸如08:30-11:00這樣的字符串進(jìn)行合法性驗證,判定表示的時間區(qū)間是否合法,以及對高峰期時間的區(qū)間是否在總的時間區(qū)間內(nèi)部進(jìn)行判斷。
    2013-03-03
  • maven打包web項目時同時打包為war和jar文件的方法

    maven打包web項目時同時打包為war和jar文件的方法

    本篇文章主要介紹了maven打包web項目時同時打包為war和jar文件的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • java遞歸菜單樹轉(zhuǎn)換成pojo對象

    java遞歸菜單樹轉(zhuǎn)換成pojo對象

    這篇文章介紹了java遞歸菜單樹轉(zhuǎn)換成pojo對象的具體實現(xiàn),有需要的朋友可以參考一下
    2013-08-08
  • 基于Java的Socket編寫的C/S聊天程序?qū)崿F(xiàn)

    基于Java的Socket編寫的C/S聊天程序?qū)崿F(xiàn)

    這篇文章主要介紹了基于Java的Socket編寫的C/S聊天程序?qū)崿F(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • spring boot攔截器的使用場景示例詳解

    spring boot攔截器的使用場景示例詳解

    這篇文章主要給大家介紹了關(guān)于spring boot攔截器的使用場景,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • java結(jié)合prometheus如何實現(xiàn)自定義數(shù)據(jù)監(jiān)控

    java結(jié)合prometheus如何實現(xiàn)自定義數(shù)據(jù)監(jiān)控

    文章介紹了如何配置Prometheus監(jiān)控系統(tǒng),包括配置文件prometheus.yml、被監(jiān)控應(yīng)用的指標(biāo)暴露配置以及自定義監(jiān)控指標(biāo)的實現(xiàn),同時,還詳細(xì)說明了監(jiān)控應(yīng)用如何通過Prometheus API獲取數(shù)據(jù)、處理數(shù)據(jù)并返回結(jié)果
    2024-12-12
  • spring使用RedisTemplate操作Redis數(shù)據(jù)庫

    spring使用RedisTemplate操作Redis數(shù)據(jù)庫

    這篇文章主要介紹了spring使用RedisTemplate操作Redis數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評論

玛纳斯县| 峨眉山市| 广东省| 施甸县| 福鼎市| 琼结县| 于都县| 晋中市| 常州市| 松滋市| 西藏| 小金县| 威宁| 万全县| 鄂伦春自治旗| 霞浦县| 卢湾区| 大安市| 泰顺县| 永丰县| 潞城市| 南投县| 礼泉县| 泸水县| 潼南县| 桐庐县| 庆云县| 罗山县| 彭山县| 昌邑市| 报价| 望谟县| 惠水县| 铅山县| 太原市| 贺州市| 石门县| 宜章县| 锡林郭勒盟| 延安市| 南开区|