Linux:/proc/ によるファイルオープン上限数の制御 (/proc/sys/fs/file-*)
技術ドキュメント目次 -> Linux -> /proc/ によるファイルオープン上限数の制御 (/proc/sys/fs/file-*)本技術ドキュメントは、2002~2004年頃に作成したものが多いです。
内容が古くなっていることもあるかと思いますが、ご了承ください。
【低価格SSL証明書】弊社運営の低価格SSL証明書販売サイト、翌月末払いなど請求書払いも可能。
◆ はじめに
カーネル2.4系の Linux では(おそらくカーネル2.2も)、オープン可能なファイル数の上限や、ファイルをオープンしている数の統計を、
/proc/ 以下にある次の2つのファイルを参照することで確認することができます。
/proc/sys/fs/file-max
オープン可能なファイル数の上限を確認でる。
値の変更を行うことも可能。
/proc/sys/fs/file-nr
次の3つの情報を確認することが可能です。
1. 今までにオープンしたことのあるファイルの最大数
(割り当て済みのファイルハンドル数 )
2. 現在オープンしているファイルの総数
(使用中のファイルハンドル数 )
3. オープン可能なファイル数の上限
(/proc/sys/fs/file-max と同じ値)
◆ /proc/sys/fs/file-max と /proc/sys/fs/file-nr の内容を参照
上記2枚のファイルの内容をcatコマンドで参照してみると次のようになっています。
# cat /proc/sys/fs/file-max 30000 # cat /proc/sys/fs/file-nr 5594 2114 30000 # |
上記の例では、
このLinuxマシンでは 30000枚までファイルハンドルを開くことができ、
OS起動後から今までに 最大5594のファイルハンドルを同時に使用したことがあり、
現在は 2114 のファイルをオープンしているといった情報を得ることができます。
5594の値が 30000 に近づいてきたら、
ファイルをオープンできる上限数に近づいてきていますので、
次のようにして上限数を増加させておきましょう。
(ほおっておくと、実行中のデーモンからファイルをOpenできないというエラーが返されるなど、プログラムが正常に動かなくなることが想定されます。)
ファイルをオープンできる上限に達する現象は、
非常に負荷の高いWEBサーバーなどでみられることがあります。
◆ オープン可能なファイル数の上限を変更
オープン可能なファイル数の上限を変更するには次のようにします。
# echo "50000" > /proc/sys/fs/file-max |
OS再起動後も設定が有効になるようにするためには、
上記の echo 文を、起動シェル(/etc/rc.d/rc.local など)に加えておきましょう。
■ Linux についての他のドキュメント
- rootログインの制御(/etc/securetty)
- ipchains について
- /proc/ によるCPU情報の参照(/proc/cpuinfo)
- /proc/ によるファイルオープン上限数の制御 (/proc/sys/fs/file-*)
- RedHat7.1にproftedをinstallした時のメモ
- RedHat系でIPエイリアス
- RedHatのバージョンの確認方法
- サポートの終わったRedHat7.3にfedoralegacyのパッチをあてる
- rpmによってインストールされたファイル一覧を確認する
- rpmの依存関係を確認する
- インストールされているrpm一覧を調べる
- インストール済みファイルがどのrpmに含まれるか確認する
■ 他のグループのドキュメント
Apache / Linux / FreeBSD / OpenSSL / Perl / HTTPプロトコル / Jakarta Tomcat / Java / NetBSD / Oracle / PostgreSQL / UNIX の C言語 / UNIX のコマンド / Windows / bind / システム運用TIPS