プログラミングとは少し関連していますが、ほとんどext4の仕組みに関する質問があります。
ファイルに128MBを書き、オフセットをランダムなソートに変更するプログラムがあります。私が書いたすべての書き込み呼び出しは256KBを書き込みます。今、両方のデバイスの速度の結果が顕著に異なります。
/dev/sda
2つのext4があり、/dev/sdb
sdaは8GB、sdbは512MBです。
たとえば、書き込み操作は/dev/sda
完了するのに0.7秒かかりますが、同じ書き込み操作は完了するのに0.05秒かかります/dev/sdb
。どちらのパーティションも、SSDではなく同じハードドライブにあります。
編集する:申し訳ありません。追加するのを忘れました。これはVirtualBox仮想マシンで実行されており、ホストはWindowsシステムです。私のラップトップには物理ドライブが1つしかないので、確かに物理ドライブは1つだけです。
編集2:問題を発見しました。 「/dev/sda」と思ったプログラムを実行していましたが、それはホストシステムからマウントした共有フォルダでした。ファイルシステムが違うとは思わなかった。
パフォーマンスに大きな変化をもたらす可能性のある背後で何が起こっているのか知りたいです。ありがとうございます!
答え1
ここでレビューするには長すぎるから…
私の関心を引き起こした2つのことは次のとおりです。
まず、/dev/sdaと/dev/sdbは2つの異なる物理ドライブです。それ以外の場合は、/dev/sda1と/dev/sda2について説明します。したがって、異なる物理ドライブについて話すと、パフォーマンスが異なる場合があります。
第二に、この情報が間違っていて、同じドライブに2つのパーティション(/dev/sda1と/dev/sda2)がある場合、物理ドライブのサイズは何ですか? 2TBを超えるパーティションを持つドライブは正しく整列する必要があります。それ以外の場合、パフォーマンスの問題が発生します。パーティションの1つはソートされていて、もう1つはソートされていませんか?プログラムに加えて、他の手段でパーティションの速度をテストしましたか?確認するこれ走行速度をテストしてみてください。