Oracle Solaris カーネルのチューンアップ・リファレンスマニュアル

一般的な入出力パラメータ

maxphys

備考欄

物理入出力要求の最大サイズを指定します。要求がこのサイズより大きいと、ドライバはこの要求を maxphys サイズの断片に分割します。個々のファイルシステムは独立して制限値を持つことが可能で、実際に独立した制限値を持ちます。

データ型

符号付き整数

デフォルト

131,072 (sun4u または sun4v) または 57,344 (x86)。ワイド転送をサポートする sd ドライバは 1,048,576 を使用します。ssd ドライバはデフォルトで 1,048,576 を使用します。

範囲

マシン固有のページサイズから MAXINT

単位

バイト

動的か

はい。しかし、多くのファイルシステムでは、ファイルシステムがマウントされるときに、この値がマウントポイントごとのデータ構造体に設定されます。ドライバによっては、デバイスがドライバ固有のデータ構造体に設定されるときに、この値が設定されます。

検査

なし

どのような場合に変更するか

raw デバイスに対する入出力を大きな断片で行う場合。OLTP 操作を伴う DBMS では小さいサイズの入出力が頻繁に行われることに留意してください。その場合、maxphys を変更しても性能の向上は望めません。

UFS ファイルシステムとの間で入出力を行い、一度に読み書きするデータ量が多い (64K バイト超) 場合も、このパラメータの変更を検討するかもしれません。ファイルシステムは、連続性が向上するように最適化する必要があります。たとえば、シリンダグループのサイズを増やし、シリンダグループあたりの i ノード数を減らします。UFS では、転送する最大の入出力サイズは 1M バイトに制限されます。

コミットレベル

変更の可能性あり

変更履歴

詳細は、maxphys (Solaris 10 リリース)」を参照してください。

rlim_fd_max

備考欄

1 つのプロセスが開くことのできるファイル記述子に対して、強い限度を指定します。この制限を変更するには、スーパーユーザー特権が必要です。

データ型

符号付き整数

デフォルト

65,536

範囲

1 から MAXINT

単位

ファイル記述子

動的か

いいえ

検査

なし

どのような場合に変更するか

1 プロセス当たりの最大オープンファイル数が十分でない場合。ただし、システムには他の制限もあるため、ファイル記述子の数を増やすことが必ずしも有用とは限りません。次に例を示します。

  • 標準入出力を使用する 32 ビットプログラムでは、256 ファイル記述子に制限されます。標準入出力を使用する 64 ビットプログラムでは、20 億の記述子まで使用できます。具体的には、標準入出力は libc(3LIB)stdio(3C) 関数を指します。

  • select はデフォルトで、fd_set につき 1024 の記述子に制限されます。詳細は、select(3C) を参照してください。ただし、Solaris 7 リリース以降では、32 ビットアプリケーションコードをより大きな fd_set サイズ (65,536 以下) で再コンパイルできます。64 ビットアプリケーションの fd_set サイズは 65,536 で、変更することはできません。

システム全体に対してこれを変更する別の方法として plimit(1) コマンドがあります。plimit を使用して親となるプロセスの限度を変更すると、すべての子プロセスがその限度を継承します。この方法は inetd などのデーモンに有効です。

コミットレベル

変更の可能性あり

変更履歴

rlim_fd_max (Solaris 8 リリース)」を参照してください。

rlim_fd_cur

備考欄

1 つのプロセスが開くことのできるファイル記述子に対して、「ソフト」限度を指定します。プロセスは、自身のファイル記述子数限度を、rlim_fd_max で指定される「強い」限度の範囲内で調整できます。それには、setrlimit() 呼び出しを使用するか、プロセスを実行するシェルで limit コマンドを実行します。「強い」限度の範囲内で値を調整する場合には、スーパーユーザー特権は必要ありません。

データ型

符号付き整数

デフォルト

256

範囲

1 から MAXINT

単位

ファイル記述子

動的か

いいえ

検査

rlim_fd_max と比較します。rlim_fd_currlim_fd_max より大きい場合、rlim_fd_currlim_fd_max にリセットされます。

どのような場合に変更するか

1 プロセス当たりのデフォルトのオープンファイル数が十分でない場合。この値を増やす意味は、プログラムで setrlimit を使用して自身で使用できる最大ファイル記述子数を増やす必要がなくなる点にあります。

コミットレベル

変更の可能性あり