浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

LinuxでOS全体の同時接続数(ファイルディスクリプタ)を確認する方法

linux

Linuxでは基本的に、あらゆるものがファイルとして扱われて管理される仕組みとなっています。

データをはじめとして、ハードディスク・SSDなどのストレージやLANカード、cpu、ターミナルなどはすべてファイルとして扱われています。

こういった構造のため、TCP通信などで作られる”TCPソケット”も、Linux上ではファイルとして扱われます。

Linuxではこういったデータ以外の特殊なファイルも含めたすべてのファイルにおいて、1つのプロセスが同時に開くことができる数があらかじめ指定されています。

つまり、1つのサーバーで受けられるコネクション数の上限は、この”ファイルディスクリプタ”の影響を受けることになります。

ファイルディスクリプタの数を確認するには次のコマンドで確認できます。

ulimit -Sn
$ ulimit -Sn
1024

上記の例の場合は、1つのプロセスが一度に1024ファイルを開くことができる、という指定になっています。

1プロセスが同時に開けるファイル、という単位なので、単純な計算は難しいですが、もしこれから立ち上げるサービスが、同時に1024以上のTCPコネクションを張る可能性があるのであれば、この上限値を変えておく必要があります。

次のようにすることで一般ユーザー・管理者ユーザー問わずファイルディスクリプタを変更することができます。ただし、”ハードリミット”を超える値は指定できません。

ulimit -Sn 2048

ハードリミットは次のコマンドで確認できます。

ulimit -Hn
$ ulimit -Hn
4096

なお、rootユーザーであればハードリミットの値も変更できます。

ulimit -Hn 60000

プロセスのリソース制限 – CentOS7ではじめるサーバー構築入門

  • この記事いいね! (0)