LoginSignup
0
0

More than 1 year has passed since last update.

ファイルディスクリプタとNGINXの設定の関係

Last updated at Posted at 2021-11-25

内容

LinuxのファイルディスクリプタとNGINXのworker_rlimit_nofileとの関係についていろいろ調べた結果をここに記す

ファイルディスクリプタとは

プログラムがアクセスするファイルや標準入出力などのをOSが識別するために用いる識別子のこと
Linuxではすべてを「ファイルとして扱う」インターフェースになっている(未確認)

OSで扱える最大のファイルディスクリプタは以下のコマンドで確認できる

$cat /proc/sys/fs/file-max

プロセスごとの制限の確認

プロセスごとのファイルディスクリプタの最大値を表示する方法

$cat /proc/[pid]/limits 
#or
$ulimit -a

ここで表示されるものにSoft limitとHard limitがある
- Soft limit:一般ユーザが変更できる制限でハードリミットを超えることができない
- Hard limit:rootユーザのみ変更できる制限である

NGINXとの関係

worker_rlimit_nofileについて

NGINXの公式ドキュメントには以下のように書かれている

構文: worker_rlimit_nofile number;
ディフォルト: —
環境: main
RLIMIT_NOFILEワーカープロセスの オープンファイルの最大数()の制限を変更します。メインプロセスを再起動せずに制限を増やすために使用されます。

公式ドキュメント:https://nginx.org/en/docs/ngx_core_module.html#worker_rlimit_core

1ワーカプロセスごとのオープンファイルの最大値がここで制限される
なのでこの値と上記のものと関係があると考えている(未実証)

worker_connectionとの関係

worker_connectionにはデフォルトで512という値が設定されている
これはたぶんファイルディスクリプタのソフトリミットのデフォルトの値が1024であるからと考えられる

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0