Linux(RHEL 5.5)で実行されているhttpプロキシがあり、クライアントから[SYN]パケットを受信した後、断続的に[SYN、ACK]パケットで応答しません。この問題は、エージェントを再起動すると元に戻すことができます。エージェントプロセスに対してgstackを実行しましたが、各スレッドのスタックに問題(停止)が表示されませんでした。この問題が発生している間、「SYN_RECV」状態の接続は100個未満でした。
どんなアイデアがありますか?この問題はどこでデバッグを開始する必要がありますか?
どんなアドバイスも本当にありがとうございます。
答え1
SYN と ACK の不足は、通常、サーバーソフトウェアがaccept
接続されていないことを示します。これは多くの理由による可能性があり、ほとんどの場合、リソースの枯渇の可能性が高くなります。サーバープロセスを試してシステムstrace
コールにいることを確認しaccept
たり、選択のためにファイル記述子のサーバーソケットで操作を実行したりできますselect
。poll
答え2
ファイアウォールの問題のようです。 TCP接続が最初のSYN + ACK応答を受信すると、パケットがプロキシサーバーに送信されない可能性が高くなります。
サーバー側とクライアント側を確認してください。