Go to main content
Oracle® Solaris 11.3 カーネルのチューンアップ・リファレンスマニュアル

印刷ビューの終了

更新: 2016 年 11 月
 
 

ZFS ファイルレベルプリフェッチ

このセクションでは、プリフェッチメカニズムの動作を制御するパラメータについて説明します。

zfs_prefetch_disable

説明

このパラメータは、zfetch と呼ばれるファイルレベルプリフェッチメカニズムを決定します。このメカニズムはファイルの読み取りパターンを参照し、一部の読み取りを予測することによって、アプリケーションの待ち時間を削減します。現在の動作には 2 つの欠点があります。

  • 少量の読み取りからなる順次読み取りパターンでは、キャッシュ内でヒットする頻度が非常に高くなります。この場合、現在の動作は次に実行する入出力を検出しようとするために大量の CPU 時間を消費し、一方で、パフォーマンスは CPU の可用性によって大きく支配されます。

  • zfetch コードが一部の負荷のスケーラビリティーを制限するということが報告されています。CPU プロファイリングは、ここに記載するように、lockstat –I コマンドまたは er_kernel を使用して実行できます。

    http://www.oracle.com/technetwork/java/index.html

    プリフェッチは、/etc/system ファイル内の zfs_prefetch_disable を設定することによって無効にできます。手順については、/etc/system ファイルおよび /etc/system.d ディレクトリを参照してください。

    デバイスレベルプリフェッチは zfs_vdev_cache_size を無効にすると無効化されます。つまり、zfs_vdev_cache_size が無効化されると、vdev cache shift のチューニングは不要になります。

データ型

ブール型

デフォルト

0 (有効)

範囲

0 (有効) または 1 (無効)

動的か

はい

検証

いいえ

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

er_kernel の結果、zfetch_* 機能にかなりの時間がかかることが示されたり、または lockstat によるロックのプロファイリングで zfetch ロックに関する競合が示される場合は、ファイルレベルプリフェッチを無効化することを検討するようにしてください。

コミットレベル

変更の可能性あり