例えば運用中で負荷が一定以上あるサーバーにおいて、数ギガバイト程度大きさのファイルをコピーする場合に低負荷でファイルのコピーを行う方法はあるのでしょうか？

尚、I/OスケジューラーはCFQ以外とします。
CC BY-SA 3.0
2014-12-25T06:13:43.990
2549
2015-01-05T13:52:53.360
3023
question
linux
CFQを使わずにlinux上で低負荷でファイルのコピーを行う方法
@heliac2001
さんのリンク内にもありますが、`rsync`に帯域制限を設ける方法はどうでしょうか。IOスケジューラが`noop`でも効果を確認できました。

例えば500kbpsでコピーする場合

```

    rsync --bwlimit=500 fromfile tofile
    
```

などと出来ます。

処理時間がかかるようにはなるものの、`iostat -x 1`で確認すると

  * %system
  * %iowait
  * %util

等が抑えられていることを確認できました。
CC BY-SA 3.0
2014-12-28T09:41:38.230
2739
2014-12-28T09:41:38.230
3313
2549
answer
すでに回答が出ていますが別の方法として、scp や pv にも帯域制限のオプションがあります。

```

    scp -l 500 fromfile tofile
    pv -L 500k fromfile > tofile
    
```

また、より汎用的な方法として、コピープロセスを SIGSTOPとSIGCONTで制御すれば低負荷のコピーが可能です。

```

    cp hoge foo &
    PID=$!
    while kill -0 $PID ; do
      kill -s 19 $PID
      sleep 5
      kill -s 18 $PID
      sleep 10
    done
    
```
CC BY-SA 3.0
2015-01-05T13:52:53.360
3138
2015-01-05T13:52:53.360
5008
2549
answer