このトピックでは、読み取り専用シナリオでパラメーターを設定してossfsの読み取りパフォーマンスを最適化するための包括的なガイドを提供します。
次のセクションはossfs 1.91.3以降に適用されます。 ossfsの最新バージョンをダウンロードしてインストールする方法の詳細については、「ossfsのインストール」をご参照ください。
モード
ossfsは、さまざまなシナリオ用に設計された3つのモードポリシーを提供します。
デフォルトモード
デフォルトモードは、小さなファイル (ページキャッシュに完全にキャッシュできるファイル) と大きなファイルに対するランダムな読み取り専用操作に適しています。 たとえば、AIトレーニングプロジェクトで直接読み取りモードで画像を読み取るパフォーマンスが低い場合、ランダム読み取り操作を追加しても、デフォルトの読み取りモードに切り替えることをお勧めします。
ossfsがファイルを読み取ると、カーネルはマウントポイントからメモリにファイルのコピーをキャッシュし、ローカルディスクのファイルにデータを書き込みます。 その結果、読み取り操作によって消費されるキャッシュサイズは、ファイルのサイズの2倍になります。
オペレーティングシステムのページキャッシュがダーティページに最大6 GBのデータをキャッシュできる場合、デフォルトの読み取りモードは理論的には3 GB未満のファイルを読み取るのに適しています。
parallel_countパラメーターを使用して同時ダウンロードタスクの数を調整し、multipart_sizeパラメーターを使用して1つのタスクでダウンロードできるデータ量を設定できます。
直接読み取りモード
直接読み取りモードは、大きなファイルの順次読み取りを含むシナリオに適しており、制限された程度のランダム読み取りアクセス (いくつかのチャンクをスキップする読み取りなど) を可能にします。 たとえば、AI推論シナリオでは、直接読み取りモードを使用して、大きなSafetensorsファイルを読み込むことができます。
直接読み取りモードを有効にするには、
-odirect_readパラメーターをenabledに設定します。直接読まれたモードでは、ossfsはメモリに範囲内のデータをの保持します
[-direct_read_backward_chunks * direct_read_chunk_size、+ direct_read_prefetch_chunks * direct_read_chunk_size]、ここでdirect_read_chunk_sizeデフォルトで4 MBのチャンクを指定します。direct_read_prefetch_chunksデフォルトは32、およびdirect_read_backward_chunksデフォルトは1です。 デフォルトでは、ossfsは[-4 MB, + 128 MB]の範囲内のデータをメモリに保持します。 直接読み取りモードは、小さな範囲に制限されたランダム読み取りもサポートします。 たとえば、Safetensorsファイルからの2つの連続した読み取りが[-32 MB, + 32 MB]の範囲内にある場合、-odirect_read_backward_chunks=8を設定して、現在のオフセットの前に32 MBのデータを保持できます。direct_read_prefet_chunkおよびdirect_read_chunk_sizeパラメーターを調整して、帯域幅の使用量を最大化するために同時にプリフェッチできるデータ量を増やすことができます。
ハイブリッド読み取りモード
ハイブリッド読み取りモードは、小さなファイル (ページキャッシュに完全にキャッシュできるファイル) と大きなファイルの組み合わせに対する読み取り専用操作に適しており、いくつかのチャンクをスキップする読み取りなど、ランダム読み取りアクセスの程度が制限されています。 たとえば、AI推論シナリオでハイブリッド読み取りモードを使用して、大きなSafetensorsファイルをロードできます。 ランダム読み取りが広いオフセット範囲に及ぶ場合、ハイブリッド読み取りモードは、デフォルト読み取りモードと比較して低い読み取り性能を提供します。
ハイブリッド読み取りモードを有効にするには、
-odirect_readパラメーターをenabledに設定します。直接読み取りモードが使用されるデータサイズのしきい値を設定するには、
direct_read_local_file_cache_size_mbパラメーターを設定する必要があります。 たとえば、マシンが最大6 GBのページキャッシュを提供している場合、ダウンロードしたデータが3 GBに達したときに-odirect_read_local_file_cache_size_mb=3072を設定して直接読み取りモードに切り替えることができます。ハイブリッド読み取りモードでは、ossfsはの範囲内のデータをメモリに保持します。
[-direct_read_backward_chunks * direct_read_chunk_size、+ direct_read_prefetch_chunks * direct_read_chunk_size]、ここでdirect_read_chunk_sizeデフォルトで4 MBのチャンクを指定します。direct_read_prefetch_chunkデフォルトは32、およびdirect_read_backward_chunksデフォルトは1です。 デフォルトでは、ossfsは[-4 MB, + 128 MB]の範囲内のデータをメモリに保持します。 小さい範囲に限定されたランダムリードがサポートされる。 たとえば、Safetensorsファイルからの2つの連続した読み取りが[-32 MB, + 32 MB]の範囲内にある場合、-odirect_read_backward_chunks=8を設定して、現在のオフセットの前に32 MBのデータを保持できます。direct_read_prefet_chunkおよびdirect_read_chunk_sizeパラメーターを調整して、帯域幅の使用量を最大化するために同時にプリフェッチできるデータ量を増やすことができます。
おすすめ
ossfsがファイルを読み取り、同時に書き込む場合は、デフォルトの読み取りモードを使用します。
ossfsがファイルのみを読み取る場合、またはファイルを読み取って別のファイルを書き込む場合:
ターゲット
説明
小さなファイルのみ
デフォルトの読み取りモードを使用します。
大きなファイルのみ
大きなファイルを順番に読み取るか、狭い範囲をカバーする読み取りオフセットを持つ特定のSafetensorsファイルをランダムに読み取るには、直接読み取りモードを使用します。
広いオフセット範囲をカバーするランダム読み取り操作を実行するには、デフォルトの読み取りモードを使用します。
ビジネスシナリオに適した読み取りモードがわからない場合、または直接読み取りモードでdirect_read_backward_chunksパラメーターを調整した後もパフォーマンスが不十分な場合は、デフォルトの読み取りモードを使用します。
小さなファイルと大きなファイル
大きなファイルを順番に読み取るか、狭い範囲をカバーする読み取りオフセットを持つ特定のSafetensorsファイルをランダムに読み取るには、ハイブリッド読み取りモードを使用します。
広範囲にわたるオフセットでランダム読み取りを実行する必要がある場合、適切な読み取りモードが不明な場合、またはハイブリッド読み取りモードでdirect_read_backward_chunksパラメーターを調整した後でもパフォーマンスが不十分な場合は、デフォルトの読み取りモードを使用します。
説明直接読み取りモードまたはハイブリッド読み取りモードでパフォーマンスが不十分な場合は、デフォルトモードに切り替えてローカルディスクにデータを保存します。 デフォルトの読み取りモードでは、ディスクパフォーマンスはossfs読み取りパフォーマンスのパフォーマンス制約です。 より高いパフォーマンスレベルのディスクを使用することを推奨します。 たとえば、適切にプロビジョニングされたパフォーマンスとバーストパフォーマンスの設定でESSD AutoPLディスクを使用できます。