當前位置:編程學習大全網 - 源碼下載 - 記錄壹次線上線程池爆了的問題

記錄壹次線上線程池爆了的問題

背景:線上不停的有超時告警和錯誤告警

現象:查看錯誤日誌有大量的

cause: org.apache.dubbo.remoting.RemotingException: Server side( xx.xx.xxx.xxx,20993 ) thread pool is exhausted, detail msg:Thread pool is EXHAUSTED! Thread Name: DubboServerHandler-xx.xx.xxx.xxx:20993 , Pool Size: 200 (active: 198, core: 200, max: 200, largest: 200), Task: 17529516 (completed: 17529318), Executor status:(isShutdown:false, isTerminated:false, isTerminating:false), in dubbo://xx.xx.xxx.xxx:20993 !

排查思路:

1、檢查是否流量有激增

排查結果:沒有特別大的波動

2、排查調用下遊的服務(包括MySQL)有沒有時延激增

排查結果:沒有

3、檢查容器的CPU/內存/網絡/磁盤各個參數

排查結果:容器的沒有

4、排查宿主機的CPU/內存/網絡/磁盤各個參數

排查結果:磁盤的IO滿了。最後確認是運維在做磁盤集群升級

針對各種原因導致的線程池滿了的情況的處理方式

1、流量激增的原因導致的

解決方案:

1、消費者加緩存,不要每次都調用 dubbo 接口; 這種針對實時性要求不高,變化不大的數據

2、修改 dubbo 線程池配置,200 -> 300 ,但不要太大 這個要看自己的服務配置

3、新建 pod 分攤流量

  • 上一篇:.net中控件拖拽這樣的形式如何實現?主要涉及哪些技術?
  • 下一篇:奇怪的聊天系統源代碼
  • copyright 2024編程學習大全網