net.core.somaxconnとは?初心者でも分かるLinuxの接続待ち行列の仕組み共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
net.core.somaxconnとは?初心者でも分かるLinuxの接続待ち行列の仕組み共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


net.core.somaxconnとは?

net.core.somaxconn は Linux カーネルの設定のひとつで、待ち受けている接続のバックログの最大数を決めます。バックログとは、サーバーが新しい TCP 接続を受け取るときに、まだアプリケーション側が受け入れる準備をしていない接続を一時的に保存しておく列のことです。

たとえば Web サーバーを起動して listen しているとき、外部からの接続要求が来ます。 accept する前に、接続要求は backlog の長さの分だけキューに蓄えられます。net.core.somaxconn がこのキューの上限を決めるため、 backlog の値が大きくても somaxconn が小さければ上限に達してしまい、新しい接続は拒否されたり、遅延したりします。

重要な点は backlog 引数と somaxconn の関係です。 listening の呼び出しで指定する backlog は概ねの目安であり、実際の待ち行列の長さは somaxconn と、時にはカーネルの実装に依存します。つまり backlog の値を大きくしても somaxconn の値を超えることはできません。

確認方法と変更方法

現在の値を確認するには次のどちらかを使います。cat /proc/sys/net/core/somaxconn または sysctl net.core.somaxconn

値を一時的に変更するには、次のコマンドを実行します。sysctl -w net.core.somaxconn=4096

永続的に設定するには、/etc/sysctl.d/ に設定ファイルを作成します。たとえば /etc/sysctl.d/99-somaxconn.conf に以下を追記します。

net.core.somaxconn = 4096

設定を反映するには再起動は不要です。sysctl -p か再起動で適用されます。

実務上のポイント

実務ではリクエストの急増を想定して somaxconn を適切に設定することが重要です。デフォルトの 128 は小さいケースが多く、アクセスが集中するサーバーではバックログ不足でパフォーマンスが落ちることがあります。一般的な Web アプリケーションサーバーでは 512 から 4096 程度に設定するケースがよく見られます。ただし実環境の値は負荷や他の設定に依存するため、負荷テストとモニタリングを併用して適切な値を見つけましょう。

よくある誤解と補足

somaxconn はバックログの“最大値”という意味だけではありません backlog の一部は OS の実装にも影響を受け、実際の待ち行列長は状況により変化します。他の制約として fs.file_max の制限や /proc の設定、システムのリソース状況も関係します

<th>用語
意味
backloglisten によって待機する接続の列の長さの目安
somaxconnバックログ列の最大許容数を決めるカーネル設定
listenサーバーが新しい接続を受け入れる準備を始める呼び出し

この設定はWeb サーバーだけでなく、データベース接続プールやその他の TCP サービスにも影響します。大量の同時接続を想定する環境では、適切な somaxconn の値を見つけ、他のバックエンド設定とバランスを取ることが重要です。


net.core.somaxconnの同意語

バックログの最大値
net.core.somaxconn がシステム全体で許容するバックログの上限。listen() に渡す待ち接続数を超えないように制限します。
待ち行列の最大数
リスニングソケットが新しい接続を待つための待機行列の容量の上限値。
リスニングバックログの上限
リスニング状態のソケットで待機させる接続の最大数。listen() の値がこの上限を超えないよう制御されます。
ソケット待ちキューの上限
ソケットが保持する待ち接続のキューの容量の上限値
接続待ち行列の最大長
新しい接続を受け付ける前に蓄える待機行列の長さの最大値。
リスニング待機接続の最大数
リスニングソケットに対して待機中の接続の最大数。
接続受付待ちの最大容量
接続を受け付けるまで待機する接続の総容量。
待機接続数の上限
待機中の接続数の上限値。
バックログ長の上限
バックログ(待機接続キュー)の長さに対するシステム上限。

net.core.somaxconnの対義語・反対語

最小バックログ長
バックログの長さを最小化する考え方。接続待機キューの容量を極力小さくする設定で、同時に受け付けられる新規接続の数を抑える意図があります。
バックログ抑制モード
接続待機キューの容量を抑制する設定。急激な接続増加時にキューがすぐ満杯になるように制約する思想です。
ゼロバックログモード
バックログをほぼゼロに近づける設定。新規接続の待機をほとんど許容しない方針を示します。
待機キューなし設定
待機キューを実質的に使わない設定。新規接続はすぐに拒否する、あるいは別処理に回す設計を想定します。
低バックログ設定
バックログの容量を低く設定する概念。ピーク時にも受け入れ数を抑える意図があります。
バックログ下限ゼロ
バックログの下限を0に近づける考え方。理論上はゼロを目指しますが、OS側の実装制約で実際は異なる値になることもあります。
最小待機キュー容量
待機キューの容量を最小化する設計思想。大量の接続を同時に受け付けない前提です。
接続拒否優先モード
新規接続を受け付けるより拒否を優先するモード。待機キューを使わず、即時の接続拒否を想定します。

net.core.somaxconnの共起語

バックログ
ソケットが listen 状態のとき、同時に待機できる接続の数の上限を示すカーネル設定。
待ち接続
接続要求がソケットのバックログに入るまでの状態の接続のこと。
リスニングソケット
listen 状態のソケット。新しい接続はこのソケットのバックログに積まれて処理される。
listen
待ち受け用のソケットを作成・設定するシステムコール・操作。
accept
バックログから接続を実際に受け入れるシステムコール。接続が確立するきっかけ
バックログ長
バックログの長さ、上限値そのものを指す指標。
バックログキュー
待機中の接続を蓄えるキューのこと。
TCPバックログ
TCP 接続のバックログ全般の総称。SYNを含む待機状態を含む概念。
SYNバックログ
SYNを待つ接続のバックログ。まだハンドシェイクが完了していない状態の待機。
tcp_max_syn_backlog
SYNバックログの最大数を決めるカーネルパラメータ
tcp_syncookies
SYN cookies を有効にする設定。バックログがいっぱいのときの対策として働く。
デフォルト
somaxconn のデフォルト設定値。
最大バックログ
バックログの最大許容値の説明・指標。
/proc/sys/net/core/somaxconn
somaxconn の実ファイルパス。値はここから参照・変更可能。
sysctl
カーネルパラメータを動的に参照・変更するコマンド/仕組み。
カーネルパラメータ
カーネルが持つ設定項目の総称。
ネットワークスタック
OS のネットワーク機能の中核。backlog設定はこの機能の一部。
accept_queue
受け付け待ちの接続キュー。accept が取り出す対象となる。
ネットワーク待ち行列
ネットワーク関連の待ち行列の総称。backlog もこの一部として扱われる。

net.core.somaxconnの関連用語

net.core.somaxconn
Linuxカーネルが待ち受けキューの長さの上限を決めるシステムパラメータ。listenで指定する backlog の最大値はこの somaxconn によって制限される。デフォルトは環境によって128程度が一般的ですが、高負荷環境では増やすことがあります。
SOMAXCONN
バックログの上限を表す用語。SOMAXCONN の値は net.core.somaxconn の設定値と対応しており、ソースコード上の定数名から来ています。
backlog
リスニングソケットが受け付ける待ち受け接続のキュー長。listen の backlog 引数で指定しますが、実際の長さは net.core.somaxconn で制限されます。
listen
ソケットを待ち受け状態にして、外部からの接続を受け付けられるようにするためのシステムコールです。
accept
待ち受けキューに並ぶ接続のうち、実際にアプリ側が使用できる新しいソケットを返します。
tcp_max_syn_backlog
半開き状態のSYNを待つバックログの最大数。大きくすると同時接続の初期ハンドシェイクを待てる数が増えます。
SYN cookies
未完成のハンドシェイクを資源を消費せず処理する技法。SYN flood 攻撃対策として使われます。
tcp_syncookies
SYN cookies の有効/無効を切り替えるカーネルパラメータ。1 に設定すると有効化されます。
/proc/sys/net/core/somaxconn
somaxconn の現在値を確認・設定するファイル。sysctl コマンドで反映させることができます。
sysctl
カーネルパラメータを動的に読み書きするコマンド。永続設定には /etc/sysctl.conf へ追記します。
/proc/sys/net/ipv4/tcp_syncookies
SYN cookies の現在値を表示・設定するファイル。1 にすると有効化されます。
backlog overflow の挙動
バックログが満杯になると新規接続は拒否されたりすることがあります。状況次第でリトライや拒否の挙動が発生します。
backlog と accept queue の違い
backlog は待ち受け全体の上限を指し、accept queue は確立済みでまだアプリが受け取っていない接続の待機列を指します。
フォーマンスチューニングのポイント
高負荷サーバーでは somaxconn、tcp_max_syn_backlog、tcp_syncookies を適切に設定し、サーバーのリソースと実Trafficに合わせて調整します。
SOMAXCONN macro の説明
SOMAXCONN はバックログ長の上限を表すソースコード上の定数ですが、実務では net.core.somaxconn の値が実際の上限として使われます。
実務での確認方法
現在の backlog 設定値を sysctl や /proc/sys/net/core/somaxconn で確認し、負荷試験や実 traffic でバックログの挙動を観察します。

net.core.somaxconnのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
17139viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
3212viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1280viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1243viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
1162viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
1107viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
1095viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
1036viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
904viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
901viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
866viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
858viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
847viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
832viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
805viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
796viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
695viws
onedrive.sync.service.exeとは?初心者向けに徹底解説と安全対策共起語・同意語・対義語も併せて解説!
649viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
640viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
634viws

新着記事

インターネット・コンピュータの関連記事