IT用語集 › ネットワーク › SO_REUSEPORT

SO_REUSEPORT

ネットワーク Svenska → 更新: 2026-10-23

複数のプロセスがまったく同じポートにbindできるようにするソケットオプション。以後、着信接続の振り分けはカーネルが行う。

従来、マルチコアでサーバーを動かすには、一つのプロセスがacceptしてワーカーに渡すか、全員が同じ待ち受けソケットを継承してaccept()を奪い合うかのどちらかだった。前者は親のループがボトルネックになり、後者はthundering herdか、接続ごとに取るロックのどちらかを招く。2013年のLinux 3.9で導入されたこのオプションは、振り分けをカーネルに移し、接続の4タプルをハッシュしてキューのどれかに割り当てる。nginxではreuseportとして使える。落とし穴は、終了するプロセスが、すでにそのacceptキューに入っていた接続も道連れにすることだ。

← 用語集に戻る