国产精品超碰,97超碰在线播放,av大片在线播放,国产亚洲欧洲

作家
登錄

TCP窗口被填滿問題的排查實踐

作者: 來源: 2022-02-09 15:32:09 閱讀 我要評論

   問題背景:

  某日17:12左右,收到實施人員投訴,有部分設備不能正常升級、收不到控制臺下發的指令等問題,同事查看control工程(后面簡稱control)那邊的日志,發現control沒有收到設備上報的影子信息,所以沒有下發指令。control工程直接對接設備,根據設備上報的信息對設備下發一些指令及配置信息,包括升級、上報日志等,IoT平臺上線之前control依賴心跳上報來獲取設備的當前信息,IoT平臺上線之后依賴設備影子信息來獲取設備的當前信息,control會訂閱設備的影子信息,但影子信息是由影子服務(簡稱IoT)轉發過去的,它不直接對接設備影子上報,具體流轉細節,

  請看這下面兩個圖:

  應用程序(control)獲取設備狀態

  

 

  應用程序(control)下發設備指令

  

 

  得知control收不到影子消息以后,我立馬去rabbitmq的控制臺查看是否有消息,

  確定兩個事:

  1.設備是否上報了消息

  2.rabbitmq是否正常

  下面圖1、圖2是當時截取的rabbitmq控制臺的兩個圖,從圖1可以很清楚的確定設備是有消息上報的,但是有很多消息是unacked(說明已經投遞給了消費者,只是消費者沒有ack而已,理論上等待一段時間就能正常)的,具體是哪個隊列堆積unacked的消息請看圖2,“spacebridgeiot-shadow”正是我們用來接收設備上報的影子信息的隊列,消息都被堆積到隊列了所以沒有轉發到control也是合理的,觀察了一段時間發現unacked的數量變成了0,但是total的總數確沒有太大變化,給人的感覺像是unacked的消息重新回到了消息隊列里等待投遞,果然過了幾分鐘以后又發現有大量unacked的消息,過了幾分鐘以后這部分unacked的消息重新回到隊列里,control那邊依然沒有收到消息,這時查看IoT那邊的日志發現竟然沒有影子消息進來,在rabbitmq的控制臺查看“spacebridgeiot-shadow”這個隊列下居然沒有消費者了,如圖3所示。

  這時查看rabbitmq的日志確實有錯誤信息,如圖4所示,rabbitmq主動關閉了連接。

  圖1:rabbitmq概覽圖

  

 

  圖2:rabbitmq隊列統計圖

  

 

  圖3:spacebridgeiot-shadow 概覽

  

 

  圖4:rabbitmq報錯信息

  

 

  臨時解決方案:

  由于當時已經有大量投訴過來了,所以采用了比較暴力的解決辦法“將堆積的消息刪除”,刪除以后果然正常了(備注:線上問題必須盡快解決,沒有時間允許我們去分析日志然后有條不紊的解決,必須快)。

  通過線下環境復現問題:

  1.往10.200.41.166環境的rabbitmq的隊列“mirrorTestQueue”堆積大量消息(起碼萬級)

  2.停掉mirrorTestQueue的消費者,待堆積完成以后重新啟動

  3.堆積完成,重新啟動消費者

  

 

  和我們設想的一樣,幾秒內有幾千條消息推給了消費者,持續幾分鐘以后rabbitmq主動關閉了和消費者之間的連接,這時從控制臺看不到隊列的消費者。

  由于我們的消費者設置了自動恢復,所以過一陣又會自動連上,但很快又會被斷連,和我們線上遇到的問題基本一樣,究竟是什么導致了這個問題呢?說實話當時沒有什么思路,網上找了一圈也沒找到什么特別滿意的答案(當時沒有抓到問題的本質,搜的關鍵詞太泛了),后來我們猜測可能是TCP層面出了什么問題,所以決定抓包試試能不能找到什么端倪。

  果然,幸運的事情發生了,話不多說,直接上圖。

  

 

  

 

  13:06:25.643428之前rabbitmq還一直在給消費者推消息,直到13:06:25.643428這個時間點,開始出現消費者tcp窗口被打滿的情況,大概持續了30秒左右,rabbitmq主動斷開了連接(發了一個rst包),之后消費者重連,然后窗口又繼續被打滿,又持續30秒左右繼續被斷連。

  

 

  

 

  感覺還挺有規律,每次持續30s,感覺是可配置的一個參數,大概總結一下就是“tcp full window導致了服務端主動rst連接,而且還有規律”

  這次換了一下搜索的關鍵詞找到了答案,rabbitmq有一個參數叫tcp_listen_options.send_timeout 是來控制寫超時的一個參數,當寫超時了以后就會觸發tcp的RST(https://github.com/rabbitmq/rabbitmq-java-client/issues/341),修改一下試試效果如何:

  1. 將寫超時時間改成10s

  tcp_listen_options.send_timeout = 10000

  2.抓包看看是否起作用

  

 

  

 

  可以看到從窗口滿到關閉連接持續10s左右,說明這個參數是起作用的。

  現象復盤:

  由于rabbitmq的消費端沒有設置prefetch所以rabbitmq一次性給消費端投遞了過多的消息,從而導致消費端的 tcp 窗口被占滿,進而觸發了rabbitmq 的tcp_listen_options.send_timeout,這個寫超時達到一個閾值后會觸發rabbitmq斷開消費者的tcp 連接。

  終極解決方案:

  之前刪除消息只是迫不得已的方案,雖然解決了問題但太暴力,我們需要找到一個優雅的方案來應對,既然是推給消費者的消息太多造成了tcp窗口被打滿,那我們就應該在接收速率上下點功夫,在連接rabbitmq的時候告訴它別給我發太多就行。

  后面這段話摘自 https://www.jb51.net/article/236407.htm

  rabbitmq有一個屬性叫prefetchprefetch是指單一消費者最多能消費的unacked messages數目。

  如何理解呢?mq為每一個 consumer設置一個緩沖區,大小就是prefetch。每次收到一條消息,MQ會把消息推送到緩存區中,然后再推送給客戶端。當收到一個ack消息時(consumer 發出baseack指令),mq會從緩沖區中空出一個位置,然后加入新的消息。但是這時候如果緩沖區是滿的,MQ將進入堵塞狀態。更具體點描述,假設prefetch值設為10,共有兩個consumer。也就是說每個consumer每次會從queue中預抓取 10 條消息到本地緩存著等待消費。同時該channel的unacked數變為20。而Rabbit投遞的順序是,先為consumer1投遞滿10個message,再往consumer2投遞10個message。如果這時有新message需要投遞,先判斷channel的unacked數是否等于20,如果是則不會將消息投遞到consumer中,message繼續呆在queue中。之后其中consumer對一條消息進行ack,unacked此時等于19,Rabbit就判斷哪個consumer的unacked少于10,就投遞到哪個consumer中。

  具體到代碼里就是

  

 

  如何評估這個值呢,rabbitmq官方有個文章說的很好,就不細說了,我們的系統中目前設置的是20。

  https://www.rabbitmq.com/blog/2012/05/11/some-queuing-theory-throughput-latency-and-bandwidth/

  結束語:

  對于關鍵組件的使用一定要熟悉其api,理解各個參數的含義和語法,當出現問題時不要局限于組件層面排查,必要的時候需要深入到底層,比如網絡,操作系統等。

  以上就是TCP窗口被填滿問題的排查實踐的詳細內容,更多關于TCP窗口填滿問題排查的資料請關注腳本之家其它相關文章!


  推薦閱讀

  架構思維之緩存雪崩的災難復盤

  1 真實案例  云辦公系統用戶實時信息查詢功能優化發布之后,系統發生宕機事件(系統掛起,頁面無法加載)! 1.1 背景  我們IM原有的一個功能,當鼠標移動到用戶頭像的時候,會顯示出用戶的基本信息。信息比>>>詳細閱讀


本文標題:TCP窗口被填滿問題的排查實踐

地址:http://www.254ch.com/kaifa/yejie/41188.html

關鍵詞: 探索發現

樂購科技部分新聞及文章轉載自互聯網,供讀者交流和學習,若有涉及作者版權等問題請及時與我們聯系,以便更正、刪除或按規定辦理。感謝所有提供資訊的網站,歡迎各類媒體與樂購科技進行文章共享合作。

網友點評
自媒體專欄

評論

熱度

精彩導讀
欄目ID=71的表不存在(操作類型=0)
国产精品超碰,97超碰在线播放,av大片在线播放,国产亚洲欧洲
91.成人天堂一区| 日韩一区二区高清| 国产一区在线观看视频| 亚洲综合色视频| 国产精品视频yy9299一区| 日韩欧美国产综合| 欧美日韩国产三级| 色狠狠一区二区三区香蕉| 成人免费不卡视频| 国产福利91精品| 韩国精品在线观看| 经典三级视频一区| 免费一级片91| 首页欧美精品中文字幕| 一区二区三区在线免费| 中文字幕一区二区在线观看| 久久久夜色精品亚洲| 日韩欧美成人激情| 欧美xxx久久| 欧美大片在线观看一区二区| 91精品国产综合久久婷婷香蕉| 欧美亚洲一区三区| 在线视频欧美区| av成人老司机| 色婷婷av一区二区| 欧洲精品一区二区| 精品1区2区3区| 欧美日本一区二区在线观看| 欧美网站大全在线观看| 91国偷自产一区二区三区观看| 91一区一区三区| 色妹子一区二区| 欧美亚洲一区二区三区四区| 精品婷婷伊人一区三区三| 欧美日精品一区视频| 欧美酷刑日本凌虐凌虐| 欧美电影一区二区| 日韩三级中文字幕| 日韩精品在线一区二区| 久久久美女毛片| 国产精品欧美一区二区三区| 亚洲欧美综合网| 亚洲最大的成人av| 日韩国产高清在线| 国产一区二区不卡在线| av在线免费不卡| 欧美伊人久久大香线蕉综合69| 欧美精品乱码久久久久久按摩 | 91福利小视频| 欧美精品乱码久久久久久按摩| 日韩午夜av电影| 国产亚洲欧美一区在线观看| 中文字幕在线播放不卡一区| 亚洲国产wwwccc36天堂| 免费欧美在线视频| 处破女av一区二区| 欧美日韩久久不卡| 久久日韩精品一区二区五区| 国产精品亲子伦对白| 亚洲国产精品久久久久婷婷884 | 成人午夜看片网址| 欧美亚洲高清一区| 欧美成人a视频| 亚洲丝袜美腿综合| 美洲天堂一区二卡三卡四卡视频 | 丝袜亚洲另类欧美| 国产河南妇女毛片精品久久久| 96av麻豆蜜桃一区二区| 91精品国产一区二区| 中文字幕的久久| 日韩在线一二三区| 成人av网在线| 精品欧美乱码久久久久久| 中文字幕一区二区三区蜜月| 奇米一区二区三区| av午夜精品一区二区三区| 欧美一区二区三区系列电影| 国产精品素人视频| 欧美aⅴ一区二区三区视频| 波多野结衣在线aⅴ中文字幕不卡| 欧美麻豆精品久久久久久| 国产精品超碰97尤物18| 另类欧美日韩国产在线| 欧美色综合天天久久综合精品| 久久蜜臀中文字幕| 日韩va亚洲va欧美va久久| 99v久久综合狠狠综合久久| 欧美成人激情免费网| 亚洲妇女屁股眼交7| av网站一区二区三区| 26uuu亚洲综合色欧美| 亚洲成人av中文| 91丨九色丨蝌蚪富婆spa| 26uuu色噜噜精品一区二区| 亚洲h在线观看| 色综合久久综合网| 国产免费观看久久| 国产在线精品一区二区三区不卡 | 久久久91精品国产一区二区精品| 亚洲一二三级电影| 99国产精品久久久久久久久久久 | 久久超级碰视频| 欧美区视频在线观看| 一区二区三区色| 91老师国产黑色丝袜在线| 国产日韩精品一区二区浪潮av| 久久电影网站中文字幕| 欧美一区二区在线视频| 午夜视频一区在线观看| 色偷偷88欧美精品久久久| 亚洲欧洲国产专区| 99麻豆久久久国产精品免费优播| 久久久久久久久伊人| 老司机午夜精品| 日韩精品一区二区三区在线观看| 日本aⅴ免费视频一区二区三区| 欧美综合一区二区三区| 亚洲精品国产a久久久久久 | 欧美激情中文字幕| 国产精品1区2区| 国产日韩精品视频一区| 国产成人精品一区二| 国产欧美精品区一区二区三区| 国产一区二区女| 国产亚洲午夜高清国产拍精品| 国产一区二区看久久| 国产亚洲短视频| 丰满少妇在线播放bd日韩电影| 国产日产亚洲精品系列| 国产精品一区不卡| 国产精品系列在线| www.成人在线| 亚洲综合激情网| 欧美精品一卡两卡| 免费看日韩a级影片| 精品国精品自拍自在线| 国产福利91精品一区| 中文字幕在线播放不卡一区| 一本到三区不卡视频| 亚洲18影院在线观看| 91精品国产综合久久福利| 久久er99精品| 欧美国产日本韩| 91福利在线导航| 美女视频网站久久| 国产午夜精品一区二区三区四区| 成人av资源在线| 亚洲成av人片一区二区梦乃 | 国产精品免费久久| 欧美综合欧美视频| 日本vs亚洲vs韩国一区三区 | 成人福利视频在线| 亚洲综合色网站| 欧美刺激脚交jootjob| 国产99精品国产| 亚洲高清不卡在线观看| 久久―日本道色综合久久| 一本一道波多野结衣一区二区| 午夜视频久久久久久| 国产欧美一区二区三区网站| 在线精品亚洲一区二区不卡| 蜜桃av一区二区三区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 在线视频国产一区| 国产专区欧美精品| 一区二区三区四区激情| 精品国产一区二区在线观看| 色综合天天性综合| 久久精品99国产精品日本| 伊人开心综合网| 精品国产乱码久久久久久浪潮| 99久久精品99国产精品| 美女www一区二区| 亚洲乱码国产乱码精品精小说| 精品日韩av一区二区| 色婷婷亚洲精品| 国产精品99久久不卡二区| 午夜电影网一区| 亚洲欧美在线aaa| 欧美tickling网站挠脚心| 91行情网站电视在线观看高清版| 国产美女久久久久| 天使萌一区二区三区免费观看| 国产精品久久久久久久午夜片| 日韩一区二区在线观看| 欧日韩精品视频| 成人黄色一级视频| 狠狠色狠狠色合久久伊人| 亚洲一区二区三区自拍| 中文字幕一区二区不卡| 久久综合色鬼综合色| 欧美一区二区在线看| 欧美亚洲一区三区| 91女人视频在线观看| 成人一区在线观看| 国产精一区二区三区| 久久国产日韩欧美精品| 无吗不卡中文字幕| 亚洲一区自拍偷拍| 亚洲美女在线一区|