結局Bind例外を発生させるのは負荷が高くなることにより消費されるTCPソケットのポートの枯渇が原因であった。 先日のエントリではシステムのTCP/IPパラメタを設定することで回避できると書いたが、冷静になって考えてみると根本にあるのTCP接続/切断を繰り返しているその作りの悪さだということに気が付く。 そもそもその問題を引き起こしたアプリケーションはサーバとの接続を決まった範囲のポートでしか行わない訳で、ならば接続/切断を繰り返す必要は全く無い。ということでアプリケーションを修正し、使用するポートの範囲が決まったならば接続したが最後システムダウンまでは切断しないで使いまわすようにした。これでTIME_WAIT状態のソケットは激減した。 しかし、TIME_WAIT状態のソケットはまだ大量に発生し続けている。何故か? TCPソケットは別にそのアプリケーションだけで使っている訳ではなく、Jav