システムで使われているファイルディスクリプタの数と 最大数を表示する.
下の例では,現状が 100 で MAX が 400 です.
# sysdef | grep desc 0x0000000000000100:0x0000000000000400 file descriptors
プロセスで使用しているディスクリプタ数を表示する. (下記で,319 はプロセス番号)
# /usr/proc/bin/pfiles 319 |grep rlimit Current rlimit: 256 file descriptors
現状の設定を表示する.
ulimit -Hn (ハードリミットを表示) ulimit -Sn/ulimit -n (ソフトリミットを表示)
/etc/system に以下のような行を追加して,システムを再起動する.
*------------------------- set rlim_fd_cur=1024 set rlim_fd_max=16384 *-------------------------
ただし,Solaris の FAQ には,以下の注意書があります.
ソフト・リミットを 256 より大きく設定した場合、特定のアプリケーション、
特に BCP のアプリケーションはおかしくなるかも知れません。 リミットを
1024 より大きく設定した場合、 select() を使用しているアプリケーションは
おかしくなるかも知れません。
stdio を使用しているプログラムや stdio を使用しているライブラリ・ コール
を使用しているプログラムでさえも、 stdio のリミットである 256 ファイル
以上オープンすると、 おかしくなるかも知れません。 ファイル・ディスク
リプタを数多く使用するプログラムは、stdio 用に小さい番号のディスクリ
プタを使用するようにするか、 予約しておくべきです。
また, http://www.brandonhutchinson.com/File_descriptors.html には,