USBドライブにキャッシュを書き込むときのパイプの停止を防ぐ

USBドライブにキャッシュを書き込むときのパイプの停止を防ぐ

バックアップには次のプロセスがあります。

btrfs send snapshots/home-2016-06-04 |
zstd --verbose -T4 - |
gpg --batch --passphrase-file /tmp/secret --compress-algo none --symmetric - >
/mnt/usbdrive/packup.zst.gpg

しかし、しばらくの間、100%CPUで非常に高速に動作している間、USBドライブへの書き込みがバッファリングされ、ドライブとの同期中にパイプライン全体が突然停止することがわかりました。その後、これら2つの状態を交互に使用します。

私が達成したいのは、zstd --adapt -T1きちんと働くことです。マニュアルページによると

zstdは、認識されたI / O条件に基づいて圧縮レベルを動的に調整します。

これは、サムドライブへの書き込みが最大(40 MB / s - ddでテスト)に達し、zstdバッファを埋めないように最適なスループットを提供する必要があります。

パイプラインの最後のステップとして追加すると、これを達成できるようです。とオプションをdd試してみましたが、役に立ちませんでした。direct fsyncdatasyncoflag

これを達成する方法はありますか?問題が書き込みキャッシュにあると仮定するのは正しいですか?

ベストアンサー1

おすすめ記事