Last Updated on 2016年6月24日 by かんりにん
出向先のLAN環境にて、でかいバックアップファイルをrsyncで別ホストに転送しようとしたら、イントラ用Webサービスのレスポンスが全体的に低下してしまった~。
中断して調べたところ、100base-T環境で常時7~80Mbps程度使われていた様子(休日だったので社内には誰もおらず、業務影響は無し。ふぅ~)。
とはいえ自分がメンテ作業でイントラサービスを使うので、そちらになるべく影響を与えないよう、rsyncのbwlimitオプションを使い、帯域を制限してひっそりと転送作業を実施。
サーバー環境はCentOS5です。
▼参考サイト:お世話になっております!
rsyncのbwlimitオプション
http://matsu.teraren.com/blog/2010/10/28/rsync-bwlimit/
バイト変換
http://byte.yonelabo.com/
▼ポイント
bwlimitオプションで指定する単位はKBPS(キロバイト)なので、注意。
bpsに直すときはビットなので8倍にすること。
--bwlimit=KBPS
▼実際に試してみた
以下、SERVER01の/home/user/以下にあるTESTFILE.txt(サイズは約2.5MB)を
SERVER02の/home/user/へ転送する際に帯域制限の有無をつけて比較。
転送速度が変わるので実行時間も比較するため”time”コマンドで計測。tcshなので少々表示が異なります。
1)bwlimitオプションなし(通常動作)
SERVER01@~/src : time rsync -avz -e ssh TESTFILE.txt user@SERVER02:/home/user/ user@SERVER02's password: building file list ... done TESTFILE.txt sent 2484156 bytes received 42 bytes 261494.53 bytes/sec total size is 2483180 speedup is 1.00 0.126u 0.014s 0:08.84 1.4% 0+0k 0+0io 1pf+0w
こちらは普通に速度が出ている。あくまで比較用として。
2)bwlimitオプションあり(帯域制限あり)
以下の例では、125KBps(ビット換算だと1Mbps)で転送を実施。
SERVER01@~/src : time rsync --bwlimit=125 -avz -e ssh TESTFILE.txt user@SERVER02:/home/user/ user@SERVER02's password: building file list ... done TESTFILE.txt sent 2484156 bytes received 42 bytes 97419.53 bytes/sec total size is 2483180 speedup is 1.00 0.019u 0.006s 0:39.44 0.0% 0+0k 0+0io 0pf+0w
こちらはbwlimitで指定した通りの転送速度で完了。
帯域に制限がある場合や、フロントエンドのトラフィックに影響が出ないよう配慮するときはこのオプションを活用すると、迷惑がかけずに安心かも。