zuntan02のはてなブログ

備忘録的なものです

オンプレミスからS3にバックアップするときにアップロードの帯域制限したい

★本件まだ未解決です。いい解決法があったら教えてください★

【問題】
aws s3 sync で5gb程度のdumpファイルをS3にバックアップしていたのだけど、このとき帯域を使い切ってしまうらしく、毎朝3時にデータセンターからping監視アラートが飛んでくる羽目に。

【対策】
オンプレミス側のサーバにtrickleをインストールして帯域制限を行う

【対策詳細】
trickleについてはこちらが詳しい。
http://apatheia.info/blog/2013/01/01/network-restriction-using-trickle/
「-d nで n KByte/sec にダウンロードが制限」
「-u nで n KByte/sec にアップロードが制限」
とのこと。

trickleのインストール

CentOSへのインストールはepelを使用

yum install trickle --enablerepo=epel

aws s3 sync コマンドにtrickleを追記

[before]
aws s3 sync /hoge/fuga s3://hogehoge/fuga --delete

[after]
trickle -s -u 5000 aws s3 sync /hoge/fuga s3://hogehoge/fuga --delete

# -sオプションについて
なお、“trickle: Could not reach trickled, working independently: No such file or directory” エラーには明示的に

  • s(standaloneモード)をつけることで抑制できる。

参考:https://siguniang.wordpress.com/2015/05/17/throttle-network-bandwidth-per-program-with-trickle/

【現状】
trickle -s -u でやるとCPUの使用率が100%に、ロードアベレージが跳ね上がる等問題がありそうだったので
他の作戦を考えつつ様子見