Hai Adachinです。今回はrsyncのオプションについてブログしやす。
例えば、データをサーバー先へrsyncを利用して転送したりすることがよくあると思いますが、普通に実行してしまうとネットワークの帯域をかなり食ってしまうため、負荷がかかってしまいます。さらにサーバにも負荷がかかってしまうのでssh重い・・・とかよくある話です。
■bwlimitオプション
ちなみにman rsyncによると・・・
1 2 |
--bwlimit=KBPS This option allows you to specify a maximum transfer rate in kilobytes per second. This option is most effective when using rsync with large files (several megabytes and up). Due to the nature of rsync transfers, blocks of data are sent, then if rsync determines the transfer was too fast, it will wait before sending the next data block. The result is an average transfer rate equaling the specified limit. A value of zero specifies no limit. |
- 訳してみた
このオプションを使用すると、最大転送速度をキロバイト/秒で指定できます。このオプションは、大きなファイル(数メガバイト以上)でrsyncを使用する場合に最も効果的です。 rsync転送の性質上、データのブロックが送信され、rsyncが転送が速すぎると判断した場合、次のデータブロックを送信する前に待機します。結果は、指定された制限に等しい平均転送速度です。ゼロの値は制限なしを指定します。
ちなみに単位がKBpsなので注意しましょう。
- 変換表
・100Mbps=12500KBps
・10Mbps=1250KBps
・1Mbps=125KBps
・500kbps=62.5KBps
・デフォルト=1.3MBps(約10Mbps)
■使い方
1 |
# rsync -vau --bwlimit=62 -e ssh hoge hogehoge:/home/adachin/test.tar |
約500kbpsで転送
■もっと負荷を下げたい場合
1 |
# rsync --bwlimit=62 --rsync-path="ionice -c2 -n7 nice -n19 rsync" -ave ssh hoge USER@リモート |
nice値をつけてプロセスのCPU/HDDの実行優先度を下げて負荷を最小限にすることもできる。
■まとめ
rsyncには転送速度をカスタマイズできるということを覚えておこう!
参考:http://tech.clickyourstyle.com/articles/280
0件のコメント