Linux RedHat ES 5サーバーには約500のクライアントが接続されています。 最近、サーバーは、サーバーと通信するアプリケーションを停止することなく再起動されたクライアントとの接続を保持しています。 クライアント上のnetstatは、常に1つの確立された接続のみをサーバに返します。クライアントを再起動すると、確立された新しい接続で通信が実行されます。サーバー側では、古い接続が閉じられていることがあります。状態が確立されているため、各クライアントに対して確立された接続が増えていることがあります。 さまざまなクライアントオペレーティングシステムが影響を受けるため、これはアプリケーションの問題ではなく、サーバーのLinux OSの1つです。 Iは、調整するために成功しなかっ永続的なTCP接続が多すぎます
- net.ipv4.tcp_keepalive_time = 600
- net.ipv4.tcp_keepalive_intvl = 10
- net.ipv4.tcp_keepalive_probes = 9
の値を試してみました。 また、最大ファイルハンドルの値を1024から2048に設定しようとしましたが、TCPキープアライブ時間が経過しても接続が閉じられることはありません。 誰かがその奇妙な行動を引き起こす可能性があるアイデアはありますか?
こんにちは、あなたの答えをありがとう! 私はTIMED_WAIT状態でのみ接続のkeepaliveパラメータが機能すると思いますが、接続は確立されたままです。 クライアントがFINなどを送信する前にシャットダウンしているため、サーバーが接続を閉じる信号を受け取っていないようです。しかし、どうすればそれを避けることができますか? – Airogat
番号キープアライブは、ESTABLISHED状態の接続をシャットダウンするためのものです。しかし、それを有効にする必要があります。 –