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

  • 2020年4月27日
  • 2020年4月27日
  • 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ではじめるサーバー構築入門

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG