USB 3.0を介して接続された外付けハードドライブからext4を使用するRAID6(ハードドライブ4台)に再同期する場合、I/Oの利用率が良くないことを確認しました。 iostatはUSB HDDの読み取り速度をほとんど110MB/s(仕様内)で示しています。 iostatはまた、約50%の時間中にRAIDに何も記録されないことを示しています。 RAIDへの書き込みがある時点から始まり、USB HDD(0MB/s)から読み込んだ直後に停止します。この操作は数秒間続いた後、USBからの読み取りが再開され、RAIDへの書き込みが停止します。書き込みキャッシュがブロックされているようです。この問題をどのようにデバッグできますか?
システムはUbuntu 18.04、カーネル4.15.0-136-genericです。
答え1
システムは、大規模な書き込みキャッシュを介してディスク書き込みを最小限に抑えるように構成されていることがわかりました。vm.dirty_ratio
(ブロッキング書き込みが発生する前に入力する必要があるキャッシュの割合)と(非ブロッキング書き込みが開始されるキャッシュの割合)を90に設定するvm.dirty_background_ratio
と、この値はデータがフラッシュされるか、使用可能なメモリの90%がFullに達するまでデータをキューに入れます。 1に設定するとvm.dirty_background_ratio
問題が解決します。