米国ベースのデータセンターでは、さまざまなLinuxサーバーがあります。サーバーはホスティング会社によって設置され、Fedora Coreを実行しています。
ドロップされた接続に関する問題が発生しています。この問題は、非活動の期間後に他のサーバーの1つに接続しようとすると、最初の接続の試みが失敗し、時には2番目のサーバーに接続されます。ただし、その後、接続が成功し、しばらく機能します。これはMySQL接続とRAWソケット接続の両方で起こりますが、一部のサーバーに接続するときだけ発生しているようです。混乱している部分は、異なる動作が同じハードウェア構成とソフトウェアを持つサーバーの一部です。たとえば、MySQL2というサーバーに接続するときに発生しますが、MySQL3というサーバーでは発生しません。これらのサーバーは同時に同じ仕様で設置されました。
この問題は多少確実に再現することができますが、15分から30分待った後にのみです。これは診断が困難になり、何を探すべきかどうかは確かにわからないためです。
接続が失敗したことがあることがわかり、このアプリケーションを書く必要があるが、これらのサーバーはすべて同じデータセンター内のものです。なぜ2つのサーバーがしばらく通信していないのですか?
誰かがこれを引き起こしているかもしれないものを考えていますか?それはサーバー構成の問題または私がホスティング会社に連絡する必要があるネットワークの問題です。私は彼らに探すように私は何を言いますか?残念ながら、私たちの経験は、サポートスタッフがそれらに詳細な方向を与えない限り、深さの問題を調査していません。
編集:MySQLは、それらがドロップされる前に少なくとも接続を受信するようです。
mysql> show status like 'abort%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| Aborted_clients | 501 |
| Aborted_connects | 184 |
+------------------+-------+
2 rows in set (0.00 sec)
_
Edit2:まったくステートフルファイアウォールが問題であるようです。 iptablesを洗い流すことはトリックをするようでした。
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
_
接続動作をトレースするためにTCPDUMP/WIRESHARKを実行しましたか?私のお金はあなたの2つの場所の間にある種の状態フルファイアウォールにあります。あなたのソフトウェアは、数分間のトラフィックを見ていない、そしてファイアウォールが接続のタイムアウトし、後続のデータがドロップされ、接続がリセットされる可能性があります。
TCPDUMPでの接続をいくつかトレースして、それらがどのようにしているかを確認し、大量のアイドル時間がある場合には。これがこのファイアウォールのことであるならば、あなたは接続を維持するTCPを存在することを試みることができます。ただし、それをするのがどれほど簡単になるかわかりません。