ext4 jbd2およびI/O優先順位

ext4 jbd2およびI/O優先順位

600万以上のファイル、4000以上のディレクトリ、合計約26GBのデータを含む巨大なディレクトリを削除したいと思います。時間がかかることがわかっているため、ファイルが削除されている間ioniceに他の操作を続行できるように、I / O優先順位をアイドルに設定することがよくあります。

time ionice -c3 rm -vrf /tmp/huge-folder

しかし、私のデスクトップ全体の環境は現在まだ非常に遅いです。 Google Chromeが新しいタブを開き、ページを読み込むのに長い時間がかかり、時には新しいxtermウィンドウを開くのに時間がかかることがあります。要約すると、プロセスI / Oの優先順位を下げても何の利点も得られないようですrm

検査は、私が望むI / O優先順位を持つプロセスiotopにいくつかのI / O時間がかかることを示しました。rmidle

rmのI/O

ただし、ext4のログプロセスとソフトウェアRAIDプロセスにはI / O時間がかかることがあります。

jbd2とraidのI / O

問題の原因となる可能性がある独自のデフォルト I/O 優先順位をどのように使用するかを確認してください。実際には、他のすべてのデスクトッププロセスのデフォルトの優先順位よりも高いjbd2優先順位で実行されます。be/3be/4

他の多くの質問それが何であるか、なぜI / O時間を費やすのか尋ねて答えるのは、jbd2私が知りたいことではありません。私の質問は:この特定のシナリオに対してアイドルI / O予約優先順位を実際に取得する方法はありますか?明らかに、サポートするのはクレイジーな考えioniceです。jbd2

追加設定情報:これは、3つの回転ディスクを備えたソフトウェアraid10の上部にあるext4ファイルシステムにあります。 ext4はデフォルトオプションでフォーマットされインストールされます(他の場合はDebianのデフォルト)。

答え1

この質問をした後、私はLinuxカーネルでI / Oがどのように機能するかを学び、ほとんどの書き込み操作ioniceでは機能しないという結論に達しました。

読み取り操作はほとんど同期的であり、簡単に優先順位を付けることができます。おそらく、これは最適化、集計などを可能にするために後で(したがって非同期)まで遅れることが多い書き込みの場合ははるかに難しいでしょう。このルートに沿って良い情報を転送して正しく集計するのは簡単ではないと思います。

源泉:Linux ioniceに関するいくつかの注意。ソースではioniceLVMやソフトウェアRAIDでは動作しないと言われていますが、それでも正しいかどうか疑問です(ブログ投稿は少し古いです)。

また見なさい:ioniceは非同期書き込み(通常の書き込みなど)には影響しませんか?

関連情報