article-thumbnail

NGINXのtoo many open filesの対応方法

カテゴリ: NGINX

タグ: CentOS,Ubuntu,Linux,NGINXチューニング

2020-08-17 01:45:26

【概要】

NginxやApache等のプロセスはファイルとして扱われます。

よって、アクセス数が増える事でデフォルトのファイル操作上限(1024)に達した場合、「Too many open files」のエラーが出力されます。

ファイルの操作上限をデフォルトから増やす方法についてまとめます。


【詳細】

1. 現状のファイル上限数を確認する

ファイルの上限数確認コマンド。

ulimit -n

出力結果

1024

上記はファイル上限数を変更していない場合のデフォルト値です。


2. ulimit設定変更

vi /etc/security/limits.conf

下記を追記します。

* soft nofile 65536
* hard nofile 65536


3. nginxの設定変更

mkdir /etc/systemd/system/nginx.service.d
vi /etc/systemd/system/nginx.service.d/limit.conf

/etc/systemd/system/nginx.service.d/limit.confに以下を記述します。

[Service]
LimitNOFILE=65536


4. サーバーを再起動してファイル上限数を確認

・Linuxサーバーのファイル上限数確認

ulimit -n

出力結果

65536


・Nginxのファイル操作上限を確認

cat /proc/`pgrep nginx | head -1 `/limits | grep 'open files'

出力結果

Max open files      65536        65536        files