Hatena::Grouptech

id:rx7(@namikawa)の技術メモ このページをアンテナに追加 RSSフィード

過去記事一覧 | Main Blog (元RX-7乗りの適当な日々) | SBM (id:rx7のBookmark)

2013/12/02

TCP: too many of orphaned sockets

| TCP: too many of orphaned sockets - id:rx7(@namikawa)の技術メモ を含むブックマーク はてなブックマーク - TCP: too many of orphaned sockets - id:rx7(@namikawa)の技術メモ TCP: too many of orphaned sockets - id:rx7(@namikawa)の技術メモ のブックマークコメント

説明

ソケットのクローズ処理時に、orphan 状態(*1)にあるソケットが想定したよりも多いことを検出した際に出力されるメッセージ。

具体的には、以下の2つの条件のうち、どちらかを満たした場合に出力される。

1.TCP ソケットのうち、orphan 状態のものが tcp_max_orphans(*2) を越えた。
2.TCP ソケットの送信キューの長さが最小値(SOCK_MIN_SNDBUF:2048)よりも長く、
  かつTCP 用にアロケートされているメモリ量が tcp_mem の high(*3) を越えていない。

この状態になると、カーネルは当該ソケットをクローズ状態に変更し、RST パケットを送出する。


  • (*1)orphan状態: システムで使用していたTCPソケットのうち、ソケットに使用しているメモリ領域を解放予定であるが、実際にはまだ解放していないソケットを指す。TCP にのみ存在する状態。
  • (*2)tcp_max_orphans: orphan 状態のソケットの最大数。デフォルト値は搭載メモリ量に応じて変動する。
  • (*3)tcp_mem のhigh: #cat /proc/sys/net/ipv4/tcp_mem とした場合に現れる値の3つ目がこれにあたる。
no title

対処

システムの動作そのものに問題が発生してはいないため、必ずしも対処は必要ではない。

この状態に陥って、RST パケットを送出されるのが困る場合や、出力を抑制したい場合などには、以下のように tcp_max_orphans の値を増やすことで回避可能である。

・ # sysctl -w net.ipv4.tcp_max_orphans=VALUE
または
・ # echo VALUE  /proc/sys/net/ipv4/tcp_max_orphans
※VALUE は設定したい tcp_max_orphans の値
no title
トラックバック - http://tech.g.hatena.ne.jp/rx7/20131202