システム全体の速度を低下させることなく、プロセスごとのダーティバイトを制限します。

システム全体の速度を低下させることなく、プロセスごとのダーティバイトを制限します。

非常に高速なブロックデバイス(高度なNVMe RAID、2 GB / s書き込み、4 GB / s読み取り)を備えた忙しいシステム/dataと非常に遅いデバイス(回転する8 TBディスク付きUSB HDD、50 MB / ss書き込み、60 MB / s読み取り)インストール、I / Oを犠牲にせずに/backupプロセスの読み取りと書き込みをどのように制限できますか?/backup/data

私が知る限り、問題はLinuxのみグローバルノブdirty_background_bytesdirty_bytes.NVMeに対してこれらの制限を合理的な値(実際には約2GBおよび4GB)に設定すると、特定のプロセス(たとえばrsync)がUSBに大量のデータを書き始めるまでスループットは問題ありません。この場合、dirty_background受信USBデバイスはデータで埋められ、rsyncページはダーティになりません。ただし、dirty_backgroundこれはグローバルな制限であり、高速デバイスと低速デバイス間で共有されるため、高速デバイスに書き込むプロセスではかなりの速度が低下します。私は私が基盤をつかむことができることを知っています最も遅いシステムに接続されているデバイスを使用すると、大きな一時停止を防ぐことができますが、より速いデバイスのためにいくつかのスループットが犠牲になります。

dirty_background_bytesシングルブロックデバイスに対応するデバイスはありますか?速度を遅くすることは本当に意味がありませんみんな他のプロセスの/data速度低下とアクセスを防ぐために書き込みを処理します。/backup

cgroupこの作業を手動で行う方法があることを知っています(プロセスごとのI / Oを最大限に制限する方法は?)。ただし、各ブロックデバイスのサイズを変更してシステム全体の速度を遅くする前に、そのデバイスにアクセスするすべてのプロセスを制限する必要があります。プロセスが高速デバイスとスローデバイスの両方に書き込む場合、スローデバイスにデータが多すぎる場合にのみ速度が遅くなります。

ベストアンサー1

おすすめ記事