newfs(1M) コマンドに対するデフォルトの i ノード密度の値 (-i オプション) は、大規模なファイルシステムには最適ではありません。newfs コマンドで新規のファイルシステムを作成する際は、i ノード密度を、デフォルトの 2 KB のファイル領域につき 1 i ノードではなく、8 KB につき 1 i ノード (-i 8192) に設定してください。現在、一般的なファイルのサイズは、1980 年頃の 1 KB ではなく、64 KB 以上になっています。
8 G バイトを超える大きなメタデバイスでは、次のコマンドのように、シリンダグループのサイズを 256 シリンダに増やす必要がある場合もあります。
# newfs -c 256 /dev/md/rdsk/d114 |
Solaris 2.3 および 2.4 のマニュアルページでは、最大サイズが 32 シリンダ/シリンダグループであると記述していますが、誤りです。
可能であれば、ファイルシステムのクラスタサイズを、ストライプ幅の整数倍に設定します。
たとえば、順次入出力に対して次のパラメータを設定します。
maxcontig = 16 (16 * 8 ブロック = 128 K バイトクラスタ)
飛び越し値を 32K バイトに指定した 4 方向ストライプを使用すると、ストライプ幅は 128 K バイトになり、パフォーマンスが向上します。
飛び越しサイズ = 32 K バイト (32 K バイトのストライプユニットサイズ * 4 ディスク = 128 K バイトのストライプ幅)
ファイルシステムの maxcontig パラメータを設定することによって、ファイルシステムの入出力クラスタサイズを制御することができます。このパラメータは、回転待ちを挿入する前に順次して割り当てられる (1 つのファイルに属する) ブロックの最大数を指定します。
ファイルシステムの入出力クラスタサイズがストライプ幅の整数倍であると、パフォーマンスが向上する場合があります。たとえば、maxcontig パラメータを 16 に設定すると、128 K バイトのクラスタ (16 ブロック * 8 K バイトのファイルシステムブロックサイズ) になります。
mkfs(1M) コマンドのオプションを使用すれば、デフォルトの minfree、i ノード密度、シリンダ/シリンダグループ、maxcontig の設定を変更できます。maxcontig と minfree の設定は、tunefs(1M) コマンドでも変更できます。
詳しい説明は、mkfs(1M)、tunefs(1M)、newfs(1M) コマンドのマニュアルページを参照してください。