リッスン UDP ソケットとアクティブな SCTP ソケットの 2 種類のソケットを使用するアプリケーションがあります。
特定の時点で、同じマシン上で IO アクティビティ (「dd、tar、...」など) が高いスクリプトが実行されています。ほとんどの場合、これらの IO 負荷の高いアプリケーションを実行すると、次の問題が発生するようです。
- UDP ソケットが閉じます
- SCTP ソケットはまだ有効で、/proc/net/sctp/assocs で確認できますが、このソケットからのトラフィックは受信されません (アプリケーションを再起動するまで)。
これらの I/O 操作が、ネットワーク ベースのアプリケーションにそのような影響を与えるのはなぜですか?
これらの問題を回避するためのカーネル構成はありますか?
UDP でいくつかのパケットが失われ、SCTP ソケットでいくつかの再試行が行われると予想していましたが、この動作はそうではありませんでした。
アプリケーションは、64 ビットの 4 クアッド コア CPU と RHEL OS を搭載したサーバーで実行されています。
# uname -a
Linux server1 2.6.18-92.el5 #1 SMP Tue Apr 29 13:16:15 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux