ntfs-3gとlowntfs-3gの違いは何ですか?

ntfs-3gとlowntfs-3gの違いは何ですか?

NTFSドライブのゲームでいくつかのパフォーマンスの問題が発生しました。 PCIe4 NVME、NTFS形式のLinuxとWindows間でSteamライブラリを共有しています。たとえば、Baldur's Gate 3を実行すると、ext4で実行するもの(pcie4 NVMEでも実行)に比べて非常に遅くロードされます。 15秒と60秒の違いは膨大です。ただし、両方のドライブは読み取り仕様が似ています。 ntfs-3gドライバはロード時にCPUスパイクを引き起こす可能性があります。

パフォーマンスを向上させるために、noatime、big_writesなど、ほとんどすべてを試しましたが、何も効果がありませんでした。 lowntfs-3gを試してみるまでです。最後の手段でこれを試したところ効果がありました。非常に高速で、ext4ほど高速です!

それでは、私が何を見逃しているのでしょうか?欠点は何ですか?インターネットやマニュアルページに関連情報が見つかりませんでした。

私はUbuntu 22.04(KDE Neon 5.27)とXanmodカーネル6.4.10を使用しています。

ベストアンサー1

はい、これは驚くほど文書化されていません。

したがって、正直な答えは次のようになります。 NTFSntfs-3glowntfs-3gNTFSは2つの異なるドライバです。彼らはいくつかのコードを共有しますが、次の主な機能ではそれほど多くはありませんfuse_ntfs_readNTFS-3Gバージョンlowntfs-3g バージョン

名前が示すように、lowntfs-3gは低レベルのFUSE APIを使用し、より速いようです。これは、低レベルのFUSE APIがより速いためであるのか、それともコードが数年でより新しいように見え、最初のリビジョンで学ぶからであるのかはわかりません。

man 8 ntfs-3glowntfs-3gだけが大文字と小文字を無視し、すべてのファイル名を小文字に変更でき、ntfs-3gだけが代替データストリームを処理できることを教えてください。 (これについて聞いていなかったら許してください!)

したがって、本質的に同じパッケージであるNTFSドライバの2つの異なる実装です。開発者はこれらのうちの1つの使用を明示的に推奨しません。

私の考えでは、ntfs-3gが徹底的にテストされる可能性が高いと思います。誰もとおばあちゃんがデフォルトでntfs-3gを使用しているからです。私と皆さんもそうだったようです。エラーはより早く見つかるはずです。

ext4がntfs-3gよりも4倍速いという事実に少し驚きました!ところで、これはFUSEドライバにとって大きな成果です。通常、ファイル(ext4など)にアクセスするには、プログラムがシステム呼び出しを行うだけです。これはプロセッサの状態を保存します(実行プログラムポイントとすべての関連レジスタで説明されています)。 CPU)とスケジューリング状態、カーネルからデータをインポートする操作、カーネルがプログラムに必要なデータのインポートを完了したら、プログラムの実行を続行できるため、カーネルコードはプロセスの状態を保存できます。その後、プログラムコードが実行されたときのプロセッサの状態が復元され、CPUはプログラムがシステムコールを実行したときに中断した場所にジャンプします。 (もちろん、詳細はより複雑ですが、これが基本的なアイデアです。)

FUSE(USERlandのファイルシステム)では、プログラムはシステム呼び出し(プログラム状態の保存、カーネル状態の復元)を実行し、カーネルはユーザーが要求したファイルがFUSEファイルシステムにあることを確認し、どのファイルを見つけてそのファイルを呼び出します。ファイルシステムの機能的なユーザーモードドライバ(カーネル状態の保存、FUSEプログラムの状態の復元)、このファイルシステムドライバは、基本ブロックデバイスから読み取るべき内容を決定し、システムコールを実行して読み取り(FUSEの状態の保存、カーネル状態の復元)を実行します。します。 、カーネルがデータを読み取り、返却(カーネル状態を保存、FUSEプログラム状態を復元)した後、FUSEドライバが要求に応じてデータを組み立ててカーネルに返す(FUSEプログラム状態を保存、カーネル状態を復元))、カーネルがデータ(完了ケース!)をプログラムに提供します(カーネルの状態は保存され、プログラムの状態は復元されます)。

したがって、FUSEは、多くのCPUキャッシュがヒットする可能性がある事実上、コンテキストスイッチ(2つではなく6つ以上)の邪悪な饗宴です。これはパフォーマンスにとってあまり良くありません(個々の読み取り要求が小さいほど悪くなります!)。だからntfs-3gの性能にはとても驚いて、驚く報告された低いntfs-3g性能に基づいています!

おすすめ記事