Go to main content

Oracle® ZFS Storage Appliance Analytics ガイド、Release OS8.8.x

印刷ビューの終了

更新: 2020 年 8 月
 
 

キャッシュ: ARC アクセス

ARC は Adaptive Replacement Cache を意味し、ファイルシステムおよびボリュームデータのための DRAM 内のキャッシュです。この統計は、ARC へのアクセスを表示し、ARC の使用状況とパフォーマンスを観測できます。

ARC アクセスをチェックするタイミング

パフォーマンスの問題を調査するときに、ARC アクセスをチェックして、現在のワークロードが ARC にどのくらい適切にキャッシュされているかを把握できます。

ARC アクセスの内訳

キャッシュ ARC アクセスの使用可能な内訳は次のとおりです。

表 17  ARC アクセスの内訳
内訳
説明
ヒット/ミス
ARC ルックアップの結果。ヒット/ミスの状態は、下の表で説明します。
ファイル名
ARC からリクエストされたファイル名。この内訳を使用すると階層モードを使用でき、ファイルシステムのディレクトリをナビゲートできます。
L2ARC 適格性
これは、ARC アクセスの時点で測定された L2ARC キャッシュ適格性です。L2ARC 適格データの ARC ミスが高い場合、そのワークロードにはレベル 2 キャッシュデバイスが有益となる可能性があります。
プロジェクト
これは ARC にアクセスしているプロジェクトを示します。
シェア
これは ARC にアクセスしているシェアを示します。
LUN
これは ARC にアクセスしている LUN を示します。

Execution Performance Impactで説明したように、ファイル名による内訳などを有効なままにすると、もっとも高い負荷がかかります。

ヒット/ミス状態は次のとおりです。

表 18  ヒット/ミスの内訳
ヒット/ミスの内訳
説明
データヒット数
データブロックが ARC DRAM キャッシュに存在し、返されました。
データミス数
データブロックは ARC DRAM キャッシュに存在しませんでした。データは L2ARC キャッシュデバイスから読み取られるか (使用可能でデータがキャッシュされている場合)、またはプールディスクから読み取られます。
メタデータヒット数
メタデータブロックが ARC DRAM キャッシュに存在し、返されました。メタデータは、データブロックを参照するディスク上のファイルシステムフレームワークを含みます。その他の例についてはあとで示します。
メタデータミス数
メタデータブロックは ARC DRAM キャッシュに存在しませんでした。データは L2ARC キャッシュデバイスから読み取られるか (使用可能でデータがキャッシュされている場合)、またはプールディスクから読み取られます。
プリフェッチデータ/メタデータ・ヒット/ミス数
アプリケーションからの直接リクエストでなく、プリフェッチメカニズムによってトリガーされた ARC アクセス。プリフェッチの詳細についてはあとで示します。

メタデータ

メタデータの例は次のとおりです。

  • ファイルシステムのブロックポインタ

  • ディレクトリ情報

  • データ複製解除テーブル

  • ZFS uberblock

プリフェッチ

プリフェッチはストリーミング読み取りのワークロードのパフォーマンスを向上させるメカニズムです。このメカニズムでは、入出力アクティビティーを検査して逐次読み取りであることを識別し、余分の読み取りを前もって実行することで、アプリケーションがデータをリクエストする前にデータをキャッシュに入れることができます。プリフェッチは ARC へのアクセスを実行することによって ARC よりも前に発生します。プリフェッチ ARC アクティビティーを理解しようとするときは、このことに注意してください。次に例を示します。

表 19  プリフェッチタイプ
タイプ
説明
プリフェッチデータミス数
プリフェッチによって逐次ワークロードであることが識別され、データに対して ARC アクセスを実行することによってデータを前もって ARC にキャッシュすることがリクエストされました。データはキャッシュに存在しなかったため、これは「ミス」でデータはディスクから読み取られます。これは正常であり、プリフェッチによってディスクから ARC にデータを取り込む方法を示しています。
プリフェッチデータヒット数
プリフェッチによって逐次ワークロードであることが識別され、データに対して ARC アクセスを実行することによってデータを前もって ARC にキャッシュすることがリクエストされました。ところがデータは ARC にすでに存在していたため、アクセスは「ヒット」を返し、プリフェッチ ARC アクセスは実際は不要でした。この現象は、キャッシュされたデータが逐次的な方法で繰り返し読み取られる場合に起こります。

データがプリフェッチされたあと、アプリケーションはそれ自身の ARC アクセスによってデータをリクエストする場合があります。サイズが異なる場合があることに注意が必要です。プリフェッチは 128K バイトの入出力サイズで実行され、アプリケーションは 8K バイトの入出力サイズで読み取ることがあります。たとえば、次のデータは直接関係がないように見えます。

  • データヒット数: 368

  • プリフェッチデータミス数: 23

ただし、プリフェッチが 128K バイトの入出力サイズでリクエストしていれば、これは 23 x 128 = 2944K バイトです。また、アプリケーションが 8K バイトの入出力サイズでリクエストしていれば、これも 368 x 8 = 2944K バイトです。

追加の分析

ARC ミスを調査するには、「キャッシュ: ARC サイズ」を使用して、ARC が増加して使用可能な DRAM をどの程度使用しているかチェックします。