Linuxで「Too many open files」ファイルディスクリプタ数の上限に達してエラー

問題解決 Linux

※この記事にはプロモーションが含まれています。

Linuxで「Too many open files」が発生してしまう原因としてファイルディスクリプタ数の上限があります。

ファイルディスクリプタ数はファイルを開いていたり、ソケットを張ることでもファイルディスクリプタ数を消費するので、ApacheやTomcatでWEBサーバーを構築したりしていると比較的起きやすくなると思います。

解決策ですが、まずは現状のファイルディスクリプタ数の上限を確認してみます。

# ulimit -n
1024

このように表示されたら上限は1024です。
この上限を上げるには

# ulimit -n 65536

このように書くと、上限を65536まで上げることができます。

ただし、この増やし方だと、再起動すると元に戻ってしまうので、永続化させるためにファイルに書いておきます。

# vi /etc/security/limits.conf 

このファイルの末尾に追加いたします。
今回は上限を65536で設定しておきます。

* soft nofile 65536
* hard nofile 65536

これでサーバーが再起動しても上限は65536のまま起動してくれると思います。

コメント

タイトルとURLをコピーしました