TUNEFS(8)

名称
tunefs - 既存のファイルシステムをチューンする

書式
tunefs [-AN] [-a maxcontig] [-d rotdelay] [-e maxbpg] [-m minfree] [-o optimize_preference] [-t trackskew] [special | filesys]

解説
tunefs は、ファイルシステムのレイアウトポリシーに影響する動的なパラメータを 変更するために使います。 -N フラグは設定可能なオプションを (チューニングオプションによる変更を 全て適用したうえで) 全て表示しますが、実際には変更を行いません。 -A フラグは、通常のスーパブロックだけを変更するのではなく、 全ての代替スーパブロックを更新します。 このオプションを使わないと、 fsck(8) が代替スーパブロックを使った時に tunefs で行った変更が消滅してしまいます。 -N フラグが指定されると -A は無視されます。

変更するパラメータは以下のフラグで指定します。

-a maxcontig
    回転遅延 (-d を参照) を強制されるまでに連続して配置されるブロック数を指定します。 ほとんどのデバイスドライバはディスク転送のたびに割り込みが必要なので、 デフォルト値は 1 です。 一度の転送でいくつかのバッファをつないで転送できるデバイスドライバでは、 この値を最大の連結長にすべきです。

-d rotdelay
    同じディスクに対する転送完了から次の転送開始までの間隔を ms 単位で 指定します。 この値は、ファイルのブロックの間をどれだけ空けるのかを決めるのに使います。

-e maxbpg
    単一のファイルが他のシリンダグループへまたがる前に、1つのシリンダグループ から割り当てることのできる最大のブロック数を指定します。 普通は、この値にはシリンダグループのブロック数の約 1/4 が使われます。 この値は、単一のファイルが 1 つのシリンダグループのブロックを使いつくして しまうことを防ぐために指定します。 なぜなら、これによって、そのシリンダグループに続いて配置される すべてのファイルのアクセス速度を低下させてしまうからです。 この制限を与えることで 1 つのシリンダの全ブロックを割り当てるよりも、 大きなファイルに対しては長いシークをより頻繁に行わせることになります。 極端に大きなファイルのあるファイルシステムに対しては、 このパラメータは大きな値にすべきです。

-m minfree
    一般ユーザには利用できない領域の割合を指定します。 これは最低限の空き領域のしきい値となります。 デフォルト値は 10% です。 この値はゼロにすることもできますが、10% のしきい値を設けた場合よりも アクセスの効率がかなり落ちてしまうことがあります。 もしこの値を現在の空き領域より大きな値に引き上げると、ファイルを削除してその 値より空き領域を広げるまで、ユーザはファイルを作成することができなくなります。

-o optimize_preference
    ファイルシステムが、ブロック割り当てにかかる時間を最小化しようとするか、 ディスク上のフラグメントサイズを最小にしようとするかを選ぶことができます (``space'' または ``time'' のいずれかを指定します)。 minfree (上記 -m オプションを参照) が 10% 未満である場合は、ファイルシステムがフルサイズの 空きブロックを使いつくしてしまうことを防ぐために、ディスクスペースに対する 最適化を行うようになります。 また、minfree が 10% 以上である場合は，ディスクのフラグメントが問題になりにくく なるため、ファイルシステムは時間に対する最適化を行います。

-t trackskew
    同一シリンダ内のトラックとトラックの間のスキューをセクタ数で指定します。 デフォルトは 0 で、これは同一シリンダ内の各トラックが同じ回転位置から 始まっていることを表します。

関連項目
fs(5), dumpfs(8), fsck_ffs(8), newfs(8) M. McKusick, W. Joy, S. Leffler, R. Fabry, A Fast File System for UNIX, ACM Transactions on Computer Systems 2, 3, pp 181-197, August 1984, (reprinted in the BSD System Manager's Manual, SMM:5).

バグ
このプログラムは、マウントされているアクティブなファイルシステムに対して使用 できるべきです。スーパーブロックはバッファキャッシュ内に保存されていない ため、tunefs の実行の影響は、それをマウントされていないファイルシステムに 対して実行したときのみ現れます。 ルートファイルシステムをチューンするには、チューン後に再起動する必要が あります。

You can tune a file system, but you can't tune a fish.

歴史
tunefs コマンドは 4.2BSD から登場しました。