□Linux ファイルディスクリプタの最大値を変更する。
ファイルディスクリプタは、ファイルオープンなどで使われるポインタのようなものです。
(Windowsだとハンドルがこれに近い。)
 アプリケーションにて、ファイルクローズを行わず、ファイルオープン、
等を続けると、Too many open files といったエラーが発生することがあります。
 その様な場合に、下記の方法で最大数を増やす事で、回避できる場合があります。
1.まず、現在の設定の確認を行ってください。
# ulimit -a
core file size        (blocks, -c) 0
data seg size         (kbytes, -d) unlimited
file size             (blocks, -f) unlimited
max locked memory     (kbytes, -l) 4
max memory size       (kbytes, -m) unlimited
open files                    (-n) 1024 <-- ここです。
pipe size          (512 bytes, -p) 8
stack size            (kbytes, -s) 10240
cpu time             (seconds, -t) unlimited
max user processes            (-u) 7168
virtual memory        (kbytes, -v) unlimited
Linuxの初期設定のままだと、1024となります。
# ulimit -n 
で、この設置だけを求める事も出来ます。
2.上記で確認したものは、ユーザー環境での設定ですが、これを増やすにあたり
  システム環境でのファイル制限も増やしておく必要があります。
echo "65536 " > /proc/sys/fs/file-max
または
# sysctl -w fs.file-max=65535
<確認>
# sysctl -a | grep file-max
 ※設定して即有効になります。OSリブートの必要はありません。
  但し、OSがリブートした際にクリアされます。常に有効にしたい場合は、
  rc.localなどのスクリプトに追加しておく必要があります。
3.ユーザー環境での設定方法
# ulimit -n 65536
  設定されたかどうかは、1.の方法で確認できます。
最終更新:2006年09月07日 19:41