精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

記一次敖丙Dubbo線程池事故排查

開發 前端
duubo在互聯網技術中是中的非常廣泛的,本次我就跟大家講講我的一次線上dubbo線程池耗盡的事故排查思路。

[[392745]]

前言

duubo在互聯網技術中是中的非常廣泛的,從我實習到現在我所在的公司,都是使用的dubbo做rpc框架,所以這也導致了我們需要更加深入的去了解這門技術,因為我們的遇到的問題無時無刻都會存在,本次我就跟大家講講我的一次線上dubbo線程池耗盡的事故排查思路。

我寫過dubbo系列的文章,大家看完這章后想了解更多dubbo細節可以查看往起文章:

Dubbo

  • 高性能NIO框架-Netty
  • Netty常見面試題總結
  • 敖丙RPC的超時設置,一不小心搞了線上事故
  • 敖丙找出Dubbo源碼BUG,三歪夸了我一天
  • Dubbo基礎
  • Dubbo的服務暴露過程
  • Dubbo的服務引用過程
  • Dubbo服務調用過程
  • Dubbo的SPI機制是啥?
  • Dubbo集群容錯負載均衡
  • Dubbo面試題
  • RPC實踐
  • Netty

問題

在一天早上突然手機收到公司服務告警短信,線程池耗盡了?在去公司的路上首先回想的就是最近公司有活動?流量突增?大早上就有人在發布系統?還是某歪趁我不在又點壞了我的系統?

懷著種種思考在公司的群里看著同步信息,以上種種可能都被反駁!!!

以下就是當時的告警信息:

  1. RejectedExecutionException:Thread pool is EXHAUSTED (線程池耗盡了)! Thread Name: DubboServerHandler-xx.xx.xxx:2201, Pool Size: 300 (active: 283, core: 300, max: 300, largest: 300) 

Q:這個問題怎么出現的呢?是不是我們擴大線程池就能解決問題呢?dubbo里面線程池默認實現是什么呢?

A:我們在排查問題的時候一定要有一種必須查出因果關系的思想才能對自己有一定的提升,憑借著這種思想我們一步一步向下揭開謎底。

帶著問題,接下來我們去查看dubbo的代碼配置,了解dubbo底層實現,只有了解底層實現我們才能更加準確的發現問題,處理問題,提升自己......

首先我們看下我們代碼配置:

  1. <dubbo:protocol name="dubbo" port="${service.protocol.dubbo.port}" threads="${service.protocol.dubbo.threads}" register="${service.protocol.dubbo.register}" /> 

從拋出的異常上我們已經設置的線程池的大小為300了

  • 這里我說明一個點,不是線程池配置的越大就越好,這個是授我們系統層面,以及配置JVM參數相關的。一般我們都是默認配置200 大致可以從這幾方面去做考慮:
  • 1.JVM參數:-Xms 初始堆大小 -Xmx 最大堆大小 -Xss 每個線程棧大小2.系統層面1.系統最大可創建的線程 2.公式線:程數量 = (機器本身可用內存 - (JVM分配的堆內存+JVM元數據區)) / Xss的值

言歸正傳我們開始看下擼點源碼,這里我們以 2.7.19的版本為例

我們可以看到ThreadPool接口是個擴展點,然后默認實現是fixed,然后里面有個getExecutor方法,被@Adaptive注解修飾。

在dubbo中ThreadPool有4個實現類

1.CachedThreadPool 緩存線程池,超過keepAliveTime時間刪除,使用的時候再創建

2.FixedThreadPool 固定線程數量線程池,一旦建立,一直持有。

3.LimitedThreadPool 可伸縮線程池,線程只增長不收縮。

4.EagerThreadPool 當core線程數忙的時候,創建新線程,而不是將任務放入阻塞隊列。這個使用自己隊列TaskQueue。

這里我們就直接看默認實現FixedThreadPool

異常處理機制


從代碼中我們可以發現:

dubbo線程池采用jdk的ThreadPoolExecutor,默認threads數為200,并且默認采用了SynchronousQueue隊列,而如果用戶配置的隊列長度大于0時,則會采用LinkedBlockingQueue隊列。

如果某個線程因為執行異常而結束,那么線程池會添加一個新的線程。

所以由于dubbo默認采用了直接提交的SynchronousQueue工作隊列,所以,所有的task會直接提交給線程池中的某一worker線程,如果沒有可用線程,那么會拒絕任務的處理然后拋出我們當前現在遇到的問題

以下說明下我們創建一個線程池的必要參數 :

  • corePoolSize - 池中所保存的線程數,包括空閑線程。
  • maximumPoolSize-池中允許的最大線程數。
  • keepAliveTime - 當線程數大于核心時,此為終止前多余的空閑線程等待新任務的最長時間。
  • unit - keepAliveTime 參數的時間單位。
  • workQueue - 執行前用于保持任務的隊列。此隊列僅保持由 execute方法提交的 Runnable任務。
  • threadFactory - 執行程序創建新線程時使用的工廠。
  • handler 由于超出線程范圍和隊列容量而使執行被阻塞時所使用的處理程序。ThreadPoolExecutor是Executors類的底層實現。

好,看了這么多源碼,從上面我們已經了解這個異常來的來源了,那是什么原因導致我遇到的這次的線程池耗盡呢?

排查思路

第一階段:

由于10.33.xx.xxx這臺機器出現線程池耗盡的時候,伴隨出現了一次時間比較久的ygc;所以懷疑是因為ygc時間較長,導致了機器資源緊張,從而拖垮了線程池;

  1. 2021-03-26T10:14:45.476+0800: 64922.846: [GC (Allocation Failure) 2021-02-24T11:17:45.477+0800: 64922.847: [ParNew: 1708298K->39822K(1887488K), 3.9215459 secs] 4189242K->2521094K(5033216K), 3.9225545 secs] [Times: user=12.77 sys=0.00, real=3.92 secs] 

所以就一直在思考什么原因導致YGC時間這么長:

這里給大家簡單說明下為什么IO高會導致GC時間長

1.JVM GC需要通過發起系統調用write(),來記錄GC行為。

2.write()調用可以被后臺磁盤IO所阻塞。

3.記錄GC日志屬于JVM停頓的一部分,因此write()調用的時間也會被計算在JVM STW的停頓時間內。

通過GC日志可以看到新生代在進行垃圾回收的時候停頓時間是在3.92s;對于新生代空間在1.8G左右的顯然是不正常的;ParNew收集器的工作過程中會出現以下步驟:

(1)標記-標記出來活著的對象 ----> (2) 將對象從eden區復制到survior區 -----> (3)清理eden區

理論上來說第三步的時間是一定的,那可能時間會比較久的要么在第一步,要么在第二步

如果是第一步標記時間過長,就意味著本次GC之前,eden區存在大量的小對象(因為eden區大小是一定的),量級應該是正常的對象數量的數十倍

如果是第二步時間過長的話,那么存在以下可能:

1.標記完之后,eden區還有大量的對象(表現是回收之后新生代的對象占用內存仍然很大),這個從gclog可以排除(回收之后新生代的大小還有39M)

2.標記完之后仍然有大量碎片化的小對象存在

3.YGC出發了fullGC,但是我們沒有查看到有關日志

此時以上的情況都指向一種可能,那就是新生代存在大量的碎片化的小對象;

為了驗證這個論據,那就只有一種辦法就是去分析一下堆快照,但是我們那個時候剛好機器被重起,無法查明原因

在我們無法驗證的時候,第二臺機器出現了同樣的問題,準備再次jump日志的時候,回過頭來看了一下GC日志,發現GC正常。所以推翻階段一結論

這里給大家介紹一些我們常用的服務器命令:

top : 這是最常用的,也是展示信息最全的,可以看到負載,內存,cpu等很多東西

比如使用top常見分析步奏:

1.top -Hp命令,查看具體是哪個線程占用率較高 2.使用printf命令查看這個線程的16進制 3.使用jstack命令查看當前線程正在執行的方法

使用jmap查看內存情況,并分析是否存在內存泄露。

jmap -heap 3331:查看java 堆(heap)使用情況

jmap -histo 3331:查看堆內存(histogram)中的對象數量及大小

jmap -histo:live 3331:JVM會先觸發gc,然后再統計信息

jmap -dump:format=b,file=heapDump 3331:將內存使用的詳細情況輸出到文件

當然還有很多其他的命令比如 jstack,jinfo,uptime 等等很多命令。。。

開啟階段二的排查:

第二次出現異常的機器伴隨著各種redis查詢超時,從而導致所有的查詢 都走到了DB,從而導致數據庫壓力大增,慢SQl告警等等。

所以又再次去查詢什么原因導致我們的redis查詢超時呢?

第一步肯定都是去查看redis服務的各項性能指標是不是出現異常,結果也沒有很大的變化,那么問題肯定是在服務器本身.

查看本身指標發現:

那就是在報警時間段,cpu,cpu_iowait, 指標會飆升,磁盤IO則呈現不間斷鋸齒狀,其余指標基本不存在波動

但是什么原因引起的CPU波動呢?cpu波動跟線程池耗盡之間又有什么因果關系呢?

因此似乎得到了答案磁盤IO較高,導致cpu_iowait變高,cpu等IO,瞬間分配不到時間片,rt就會抖動。

最后我們發現跟我們的磁盤IO較高的原因時又跟我們的日志采集系統有關,相信現在很大一部分的公司都會用TRACE作為服務的全程鏈路最終管理。

再采用異步方式把記錄在內存中trace日志一次性寫入磁盤,所以會出現IO抖動。

接下來我們看下trace 他到底是怎么工作的。

  • trace 是類似 strace 的動態跟蹤工具,屬于問題診斷和調試工具 1.trace 包括兩部分:收集跟蹤日志和解析跟蹤日志。2.trace 收集跟蹤日志實質上是運行跟蹤模塊時記錄的控制流信息的日志

重點: trace 模塊將上述信息組織成二進制格式寫入內存中,直到停止 trace 跟蹤,才將上述內存中的信息導出為二進制文件

這個只是給大家提供一個思路,每個人遇到問題或者場景都不一樣那得到的結論也都不一樣,只能是給大家作為一個參考吧!!!

總結

其實我們在排查問題的時候,我們很容易會被一些其他的表象給迷惑了,認為本來是果的關系變成了因,但是這個本來也就是一個復雜的過程,只能是通過自己不斷的積累,不斷的學習過程,所以寫下這篇文章希望能對大家有一定的幫助.

最后還是要強調一下大家遇到問題不要稀里糊涂解決了就好了,這樣下次問題復現你還是稀里糊涂解決不知道什么原因,這樣長期下來你的個人成長是很局限的,對一個技術的理解往往是從問題發現到解決理解這中間得到提升的。

我身邊的大佬遇到這樣的情況都是選擇先解決問題(遇到任何線上問題都是優先恢復再考慮查找原因),然后刨根問底找到答案才罷休的,比如我老東家的leader在遇到一個內存溢出問題時,dump下數據從中午分析到大半夜,分析出來,寫了滿滿一大頁的wiki吧過程沉淀下來才回家,我看到的時候是由衷的佩服。

做一行愛一行嘛,我是敖丙,你知道的越多,你不知道的越多,我們下期見。

責任編輯:姜華 來源: 三太子敖丙
相關推薦

2022-11-16 08:00:00

雪花算法原理

2020-11-16 12:35:25

線程池Java代碼

2020-06-12 13:26:03

線程池故障日志

2023-04-06 07:53:56

Redis連接問題K8s

2020-08-24 07:34:39

網絡超時請求

2021-03-05 22:41:55

CDH集群CDH集群

2017-12-19 14:00:16

數據庫MySQL死鎖排查

2019-03-15 16:20:45

MySQL死鎖排查命令

2021-05-13 08:51:20

GC問題排查

2021-03-29 12:35:04

Kubernetes環境TCP

2023-01-04 18:32:31

線上服務代碼

2021-11-23 21:21:07

線上排查服務

2020-09-25 07:57:42

生產事故系統

2022-02-08 17:17:27

內存泄漏排查

2022-10-10 17:52:08

CPUERP系統

2024-09-05 08:07:55

2021-04-29 08:53:49

電商流程引擎

2021-11-11 16:14:04

Kubernetes

2025-03-11 08:48:35

JVMOOM事故

2022-05-12 09:52:09

網絡架構HTTP跨域保護機制
點贊
收藏

51CTO技術棧公眾號

苍井空浴缸大战猛男120分钟| 国产精品久久久久免费| 长河落日免费高清观看| 久久精品97| 国产精品电影一区二区| 91成人在线看| 九九热精品视频在线| 激情五月色综合国产精品| 欧美精品一二三| 国产美女主播在线播放 | 宅男在线观看免费高清网站| 国产风韵犹存在线视精品| 97精品国产97久久久久久| 国产人妻大战黑人20p| 999精品嫩草久久久久久99| 亚洲国产欧美在线| 亚洲国产精品一区二区第四页av| 亚洲精品久久久久avwww潮水| 日日夜夜精品视频免费| 久久国产精品久久久| 久久精品成人av| 久久精品黄色| 亚洲r级在线视频| 特级毛片在线免费观看| 性xxxx视频播放免费| 精品一区二区三区视频| 国产91精品久久久| a在线视频播放观看免费观看| 网友自拍一区| 日韩欧美一区二区在线视频| 999精品视频在线| 91九色在线看| 亚洲精选视频在线| 亚洲一区二区日韩| 欧美日韩国产高清一区| 久久人妻精品白浆国产| 国产美女一区视频| 1024国产精品| 亚洲视频欧美在线| 精品视频一二三| 97aⅴ精品视频一二三区| 成人91视频| 国产美女免费看| 毛片基地黄久久久久久天堂| 日韩av免费看网站| www.国产高清| 亚洲精品日本| 欧美—级高清免费播放| 丰满少妇高潮久久三区| 天天做天天爱天天综合网| 在线看国产精品| www色com| 91亚洲国产| 国产亚洲精品va在线观看| 欧美bbbbb性bbbbb视频| 美国成人xxx| 亚洲第一精品自拍| 国产免费a级片| 中文在线免费一区三区| 欧美α欧美αv大片| 一区二区三区人妻| 亚洲图色一区二区三区| 欧美本精品男人aⅴ天堂| 美女又黄又免费的视频| 亚洲一区二区三区四区电影 | 99精品欧美一区二区| 亚洲一级大片| 一级性生活免费视频| 怡红院在线播放| 日韩美女视频一区二区| 成年人免费观看的视频| 精品国产丝袜高跟鞋| 综合久久一区二区三区| 操bbb操bbb| 男人天堂亚洲天堂| 亚洲成国产人片在线观看| 女人帮男人橹视频播放| 色偷偷色偷偷色偷偷在线视频| 欧美午夜片欧美片在线观看| 农村妇女精品一二区| 欧美xnxx| 91精品在线观看入口| 在线观看免费看片| 国产一区福利| 亚洲色图15p| 日韩在线一卡二卡| 久久伦理在线| 欧美日本精品在线| 日韩成人免费在线视频| 裸体一区二区| 成人亲热视频网站| 日韩中文字幕综合| 国产午夜精品一区二区| 自拍偷拍一区二区三区| av男人的天堂在线观看| 在线免费不卡电影| 久久人人爽人人片| 欧美福利在线播放网址导航| 在线播放国产精品| 精品一区在线观看视频| 亚洲欧美成人综合| 成人在线国产精品| 五月婷婷开心中文字幕| 中国色在线观看另类| 久艹在线免费观看| 成人全视频免费观看在线看| 欧美大黄免费观看| 亚洲色图第四色| 国语精品一区| 国产精品久久久久久中文字| 丰满人妻一区二区三区四区53 | 亚洲一区二区在线播放| 手机在线观看免费av| 国产精品免费久久久久| 久久久久久久中文| 高清在线一区二区| 亚洲人成电影网站色…| 久久香蕉精品视频| 久久狠狠亚洲综合| 蜜桃导航-精品导航| 97caopor国产在线视频| 在线观看欧美日本| 国产又粗又长又爽| 欧美另类亚洲| 国产精品一区二区在线| 欧美日韩影视| 午夜伦理一区二区| 成年人性生活视频| 久久在线视频| 国产精品吹潮在线观看| 天天舔天天干天天操| 亚洲综合偷拍欧美一区色| 午夜免费看视频| 国产欧美一区二区精品久久久| 久久久女女女女999久久| 小泽玛利亚一区二区三区视频| 99久久精品国产网站| 国产欧美久久久久| 高清国产一区二区三区四区五区| 国产一区二区三区在线视频| 国产精品视频免费播放| fc2成人免费人成在线观看播放| 天天想你在线观看完整版电影免费| 久草综合在线| 国产亚洲激情在线| 成人午夜精品视频| 久久久国产精品麻豆| 男女午夜激情视频| 另类在线视频| 97成人精品区在线播放| 欧美一级性视频| 亚洲国产一二三| 久久久久亚洲av无码网站| 中文在线播放一区二区| 91视频婷婷| 女人天堂av在线播放| 日韩美一区二区三区| 亚洲欧美一区二区三区四区五区| 狠狠狠色丁香婷婷综合久久五月| 一区二区三区免费看| 欧美国产视频| 操人视频在线观看欧美| 国产夫妻性生活视频| 一区二区三区免费| 日韩综合第一页| 9色精品在线| 蜜桃传媒一区二区| 中韩乱幕日产无线码一区| 色青青草原桃花久久综合| 一级全黄裸体免费视频| 亚洲免费观看高清完整版在线 | 成人久久网站| 久久精品成人一区二区三区 | 美女脱光内衣内裤视频久久影院| 亚洲欧洲国产精品久久| 亚洲精品66| 欧美激情xxxx| 污污视频在线观看网站| 在线亚洲+欧美+日本专区| av资源在线免费观看| 国产一区二区三区国产| 成人免费看片'免费看| 秋霞综合在线视频| 国产精品福利在线| 求av网址在线观看| 日韩精品影音先锋| 欧美精品韩国精品| 国产精品蜜臀在线观看| 最新国产精品自拍| 久久综合亚州| 91嫩草国产丨精品入口麻豆| 日韩欧美中文字幕电影| 国产精品美女在线| 久久亚洲导航| 一本色道久久88亚洲综合88| 国产成人三级一区二区在线观看一| 精品久久久中文| 欧美波霸videosex极品| 国产白丝精品91爽爽久久 | 久久精品理论片| www.亚洲成人网| 欧美日韩性在线观看| 91视频99| 欧美91在线|欧美| 91国在线精品国内播放| 欧洲不卡av| 精品无人区乱码1区2区3区在线| 亚洲中文字幕一区二区| 欧美性高潮床叫视频| 破处女黄色一级片| 国产午夜精品美女毛片视频| 韩国三级在线看| 奇米一区二区三区| 蜜桃传媒一区二区三区| 国产精品国产一区| 欧美尤物一区| 国产色噜噜噜91在线精品| 国产美女精品视频| 男人天堂视频在线观看| 欧美成人性生活| √天堂资源地址在线官网| 日韩av有码在线| 国产浮力第一页| 欧美绝品在线观看成人午夜影视| 91美女免费看| 亚洲国产精品久久人人爱| 91精品国产闺蜜国产在线闺蜜| 久久精品视频网| 欲求不满的岳中文字幕| 国产91精品免费| 手机精品视频在线| 久久福利视频一区二区| 成人免费观看毛片| 国产视频一区三区| 免费高清一区二区三区| 婷婷综合在线| 亚洲午夜精品国产| 国产亚洲一区二区三区不卡| 精品免费二区三区三区高中清不卡| 日韩成人在线看| 91午夜在线播放| 成人污版视频| 成人性生交大片免费看小说| 国产精品麻豆成人av电影艾秋| 国产精品igao视频| 日韩成人亚洲| 国产成人涩涩涩视频在线观看| 小h片在线观看| 78色国产精品| 中文字幕乱码在线播放| 欧美一区二区色| 免费看男女www网站入口在线 | 久久97超碰色| 国模私拍视频在线观看| 免费国产亚洲视频| 欧美wwwwwww| 精品一区二区三区蜜桃| 天天综合天天添夜夜添狠狠添| 激情伊人五月天久久综合| 毛片毛片毛片毛| 国产酒店精品激情| 欧美午夜精品一区二区| 成人v精品蜜桃久久一区| 7788色淫网站小说| 国产色综合一区| 超碰97av在线| 亚洲欧美日韩国产另类专区| 亚洲色婷婷一区二区三区| 一区二区三区免费| 日韩成人av毛片| 在线视频亚洲一区| 一区二区日韩在线观看| 欧美一区二区日韩| 国产小视频一区| 亚洲免费中文字幕| wwwww在线观看免费视频| 久久夜色精品国产欧美乱| 日本aa在线| 欧美一级淫片丝袜脚交| 欧美成人app| 91嫩草在线视频| 久久99精品久久久久久欧洲站| 欧美一区1区三区3区公司| 99精品全国免费观看视频软件| 成人污网站在线观看| 国产日韩欧美一区在线 | 狠狠色狠狠色合久久伊人| 国产伦理在线观看| 久久久www成人免费无遮挡大片| 99热在线观看精品| 亚洲超碰97人人做人人爱| 青青国产在线视频| 日韩视频在线你懂得| 你懂的在线看| 欧美美女操人视频| 电影网一区二区| 51国产成人精品午夜福中文下载 | 日韩啊v在线| 欧美黄色一区| 欧美成人黑人猛交| 国产精品一区二区三区99| 国产毛片久久久久久久| 亚洲激情自拍视频| 国产免费一区二区三区四区五区 | 在线播放免费视频| av男人天堂一区| 天海翼在线视频| 欧美日韩一区免费| 国产99视频在线| 一区二区国产精品视频| xxxcom在线观看| 成人在线小视频| 在线日韩一区| 阿v天堂2018| 国产美女视频91| 变态另类ts人妖一区二区| 一区二区三区欧美日| 亚洲午夜在线播放| 国产丝袜视频一区| 欧美另类tv| 91色在线观看| 成人在线免费观看91| 国模吧无码一区二区三区| 成人性生交大片免费| 侵犯稚嫩小箩莉h文系列小说| 日本高清不卡aⅴ免费网站| 黄色片一区二区三区| 久久精品亚洲94久久精品| 免费在线观看一区| 精品欧美一区二区三区久久久| 欧美在线资源| 亚洲欧美国产中文| 国产欧美一区在线| 亚洲不卡在线视频| 精品视频久久久| 91福利区在线观看| 国产不卡一区二区三区在线观看 | 霍思燕三级露全乳照| 国产在线精品一区二区夜色| 欧美激情久久久久久久| 日本久久精品电影| 水中色av综合| 欧美又大又硬又粗bbbbb| 久久亚洲道色| 成人在线观看你懂的| 成人白浆超碰人人人人| 日本少妇性高潮| 亚洲黄一区二区| 91超碰在线| 久久青青草综合| 亚洲在线网站| 熟女俱乐部一区二区| 一本大道久久a久久综合婷婷| 色鬼7777久久| 国产精品成人久久久久| 日本一区二区免费高清| 亚洲天堂2018av| 亚洲欧洲在线观看av| 国产强伦人妻毛片| 九九久久久久99精品| 超碰97久久国产精品牛牛| av在线观看地址| 不卡一区在线观看| 五月婷婷中文字幕| 亚洲日本欧美中文幕| 欧美大片网站| 人人妻人人澡人人爽欧美一区| 99国产欧美另类久久久精品| 国产嫩bbwbbw高潮| 中文字幕亚洲自拍| 国产日韩欧美中文在线| 国产尤物av一区二区三区| av网站免费线看精品| 91porny九色| 久久成人18免费网站| 国产伦精品一区二区三区在线播放 | 亚洲国产一区二区在线播放| 三级在线电影| 国产精品丝袜视频| 欧美在线黄色| 成人手机在线免费视频| 91精品91久久久中77777| 麻豆av免费在线观看| 国产精品一区二区三区在线观| 国产毛片久久| 我要看一级黄色录像| 亚洲国产精久久久久久| 日韩高清不卡| 九一免费在线观看| 26uuu色噜噜精品一区| 一级特黄录像免费看| 91黑丝高跟在线| 国产精品久久久乱弄| 天天躁日日躁狠狠躁av麻豆男男| 欧美性生交片4| 国产高清在线a视频大全| 日韩av在线一区二区三区| 粉嫩嫩av羞羞动漫久久久| 艳妇乳肉豪妇荡乳av无码福利| 欧美国产视频一区二区|