私のネットワーク技術は非常に悪いので、次のnetstat -tonの意味を理解しようとしています。
RedisサーバーとPUB / SUBを介して接続されたスレッドを持つクライアントがあります。SUBSCRIBE
Redisチャンネル用のクライアント。
私はこれが2つの間に長く続くTCPリンクを生成すると思いますが、チャネルで何かが起こると、サーバーはクライアントにデータを送信します。
しかし、時には(月から3ヶ月まで)、クライアントは何も受信しませんが、クラッシュしたりエラーが発生しないことがあります。
この状態では、以下が表示されます。
Recv Q が停止し、ESTABLISHED が終了しました。
私はそれについて読んでおり、TCP接続維持パラメータを含む多くのものに関連付けることができますか?
この状態をデバッグする方法に関するヒントやアイデアはありますか?
クライアントを再起動すると、すべてが解決されました。
答え1
確立された接続のRecv-Qは、そのソケットに接続されているユーザープログラムによってコピーされていないバイト数なので、問題はクライアント内にあるようです。つまり、アプリケーションはソケットからデータを読み取ることはありません。