カーネル: TCP: 時間待機バケットテーブルのオーバーフロー問題
最近、elk を使用してシステムログを収集したところ、一部のマシンに多くのカーネルエラーがあることがわかりました
インターネット上の意見のほとんどは、カーネル パラメータ net.ipv4.tcp_max_tw_buckets を増やすというものです。でも、原理を説明していませんでした
よく考えたら、tw_bucketsの意味は、テーブルがいっぱいになった時間待ちのバケットテーブルです。
なぜいっぱいなのですか?
<code>netstat -an<span>|more</span></code>
time_out リンクを参照
通常、これは Web サーバーが原因でポート 80 が発生するため、キープアライブを考えるのが自然です。
その後、keepalivedをオフにして、tcp_max_tw_bucketsの値を2wに調整したところ、基本的にそのようなアラームは発生しませんでした。
特に、バックエンドの転送が必要な一部のクラスターの場合、維持される接続の数を減らすために、キープアライブをオフにすることが最善であると個人的に考えています。
上記では、カーネル: TCP: 時間待機バケット テーブル オーバーフローの問題を、関連する側面も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。