Arthasはオンライン戦闘:ダボスレッドプールが枯渇のトラブルシューティングです

オンラインアラーム

警告プロンプトを制限するの多くを行うために週末イベント中。だから、神は最初の一時的圧力に耐え、動作や大型機械のメンテナンスを追加してください。拡大の波は、マシンの数を増加させました。その後、その後、我々はインターフェイスの応答タイムアウトアラームの詳細を参照します。

2019-06-22 23:32:07,957 WARN [New I/O server worker #1-9] com.alibaba.dubbo.common.threadpool.support.AbortPolicyWithReport:warn:54 [DUBBO] Thread pool is EXHAUSTED! Thread Name: DubboServerHandler-172.***:62075, Pool Size: 200 (active: 200, core: 200, max: 200, largest: 200), Task: 771 (completed: 571), Executor status:(isShutdown:false, isTerminated:false, isTerminating:false), in dubbo://172.***:62075!, dubbo version: 2.5.3, current host: 172.16.6.3

スレッドプールが排出されます!

トラブルシューティング

何?スレッドプールが消耗しています。

1.クライアントが再試行する回数が多すぎるを呼び出しますか?

検査は、すべての再試行要求がゼロに設定されていることを明らかにしました。

2.インターフェースの応答時間が長すぎるタイムアウト設定ですか?

シングル要求タイムアウト3S。

3.ブロックされたスレッドはありますか?

Arthasはを開きます。

スレッド-b

すべてSimpleAsyncTaskExecutorは、すべてがブロックされて発見されました。そこで、彼らは何をしますか?

エピソード

スレッドが詰まるSimpleAsyncTaskExecutor再起動操作および保守サービス後。(ただ、すべてブロックされます)

のいずれかを表示し続けます

スレッド378

DubboServerHandlerが所有することは見下し続けます

スレッド146

Tidyの、私たちは、現在のデッドロックではないと結論付け、ここでデータベースクエリは例外です。データベースは問題が他の同様のサービスを持っている場合は奇妙な、なぜ、何の警告はありませんか?

マイクロチャネルプラットフォーム麦芽パンから
no ipは、ホワイトリストに追加されていない彼女は、同じネットワークセグメント上のデータベースにない適用して、調査時と神のメンテナンスしてください。

結論

拡張は、データベース・リンクを無視します。ホワイトリストのバグ修正。

考えます

上記の行ビューによると、データベースに接続されている問題であり、これらの戦略ディスパッチャとのダボはそれでやっていないと?オンライン検索ソリューション:(検証されていない)、ディスパッチャの戦略のダボプロバイダを変更したメッセージに設定されています

<dubbo:protocol name=“dubbo” port=“8888” threads=“500” dispatcher=“message” />

ディスパッチャデフォルトでは、すべての、すべての要求は、業務処理のスレッドプールに配布されますされています。スレッドプールがすでに一杯になったときダボデフォルトのビジネスのスレッドプールのサイズは、キューの長さが0である、200で、後続の要求は破棄されます。しかし、要求がサービスにスレッドプールを破棄され、サーバは、この時点で拒否されているが、消費者がタイムアウトするまで待機していた表示される場合があります

参照

1. blog.csdn.net/LG772EF/art... 2. www.cnblogs.com/zhukunrong/...

おすすめ

転載: juejin.im/post/5d104586f265da1b8466f0c6