Sun 関係覚え書き

現状の調査

システムで使われているファイルディスクリプタの数と 最大数を表示する.

下の例では,現状が 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 には,


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-09-29 (木) 16:48:02