A と呼ばれるアプリケーション サーバーと、B と呼ばれる DB サーバーがあります。
B(DB) で を実行するnetstat -ntp | grep 'A's IP' | wc -l
と、400 を超える TCP 接続が表示されます。また、MySQL クライアントを使用して MySQL に接続し、実行するselect count(*) from processlist where host like 'A's IP%'
と、400 を超える結果も表示されるため、MySQL と OS の両方で、A への 400 を超える接続が開いていることに同意しているようです。
ただし、A にログオンして を実行するnetstat -ntp | grep 'B's IP' | wc -l
と、100 を超える TCP 接続しか表示されません。
では、これはどのように起こりますか?私はnetstat
間違って使用していますか、それとも何ですか?2 つのホストが、それらの間の TCP 接続の数について意見を異にする理由がわかりません。
クイック アップデート: 実際には、A には 6 つの異なるプロジェクトがあり (一部は Rails 3.2、一部は Rails 2.3)、そのうちの 1 つが redmine です。Bの結果を取得show processlist
して A と比較すると、netstat -ntp
B の一致しない接続は、redmine を含むさまざまなプロジェクトからのものであることがわかりました。
PS: どちらの OS も CentOS 5.4、MySQL は Percona 5.1.57-rel12.8-log です。
PS2: すべてのサーバー/ハードウェアを再起動しましたが、問題は解決していません。突然出てきたので、問題/バグは常にそこにあると思いますが、設定した最大接続数 1000 に達するまで気付かなかったのです。それで、任意の野生の推測はありますか?アプリケーション コードのバグ (activerecord または mysql gem) でしょうか? OSのバグ?または何?