「zfs scrap」が5秒ごとにディスクに書き込まれるのはなぜですか?

「zfs scrap」が5秒ごとにディスクに書き込まれるのはなぜですか?

私のNASはzfsを実行しており、時々クリーンアップされます。

実行すると、期待どおりにすべてのデータが読み込まれますが、実行中に少しのデータも書き込みます(約0.5%)。

Device       rkB/s     wkB/s  %util
sda       13628.80     69.60  58.04
sdb       13625.60     73.60  59.48
sdc       13625.60     70.80  58.96
sdd       13625.60     68.40  58.24
sde       13625.60     69.60  60.00

これは、それを使用する他のシステムで説明できます。ただし、NASを使用するシステムはなく、NASに接続するためにサーバー上で実行されるユーザープロセスもありません。さらに、速度は数時間一定に保たれる。全読み取りの場合は4.5秒、書き込みの場合は0.5秒です。それは固定リズムです。 4.5秒間沈黙してDRRRDRRDのように見える書き込み音が続きます。

しかし、なぜこのように書かれていますか?何もないゲストもなく、直すこともないとき?

私の考えでは、すべてのデータがきれいで一貫しており、最後のクリーンアップ以降に変更されていない限り、データを書き込む必要はありません。

答え1

それは答えでも解決策でもありませんが、問題を小さくします。

以下を使用して、5秒から30秒まで調整できます。

echo 30 > /sys/module/zfs/parameters/zfs_txg_timeout

なぜ何かが書かれているのか、まだ説明していません。私が考えることができる唯一の方法は、電源が切れてもスクラブが到着した場所で続行できるように進行状況を作成することです。しかし、これは起こる可能性のない多くのIOを無駄にするように見え、わずか数秒で節約できます。

5秒から60秒に変更すると、平均IOが16200から18000に増加し、約12%向上しました。

関連情報