1

現在、Ubuntu 12.04 x64 VM で実行されているサーバー アプリケーションを作成しました。アプリケーションは別のサーバーに接続し、このサーバーから一部のデータを吸い上げて変換し、別の場所で実行されているクライアント アプリケーションに送り返します。これらはすべて TCP 上の boost::asio の上にあります。IOはかなり重いです。

毎日、数時間程度の操作の後、サーバーがクライアント接続をドロップしていることがわかります。クライアントが再接続を試みると、接続が確立されるとすぐに再び切断されます。boost::asio によるエラー レポートは「ピアによる接続のリセット」です。これは一見無期限に続きます。この間、マシンに SSH で接続でき、アプリケーションからサーバー プロセスへの接続はまだ正常です。負荷は中程度です。アプリケーションを再起動すると、問題が解決します。

これをさらに調査する方法についてのアイデアはありますか?

4

1 に答える 1

1

clinet アプリが接続を試みたときに「ピアによって接続がリセットされました」というエラーは、接続を試みたポート アプリケーションが開いていないか、開いている可能性がありますが、追加の接続を受信できないことを意味します (サーバーには、受け入れられない接続の最大数があります)。

ネットワーク レベルではSYN、クライアントからサーバーに送信され、サーバーがRST.

サーバー上で実行netstat -antpし、サーバー ポートがLISTEN状態になっているかどうかを確認します。

于 2012-06-14T19:34:19.550 に答える