iMind Developers Blog

iMind開発者ブログ

Wondershaperによる帯域制限

概要

クラウド上にいるサーバーのネットワークの使用量をある程度キャップしたい。

バージョン情報

  • wondershaper 1.1a-9
  • Ubuntu 18.04.2

導入

$ sudo apt install wondershaper

制限をかける

wondershaperで制限をかける際の文法は下記。

wondershaper [interface] [downlink] [uplink]

インターフェース名を指定して、inboundとoutboundの制限を書く。単位はキロビット/秒。

100kilobit/sくらい(けっこう狭い)を指定してみる。

$ sudo wondershaper eth0 100 100

この状態でscpで何か重いファイルをscpしてみる。

$ scp big_file.gz server:

big_file.gz  28%   35MB  40.6KB/s   35:48

40.6KB/sになった。100kilobit/sec = 12.5KB/sのはずなのでちょっとズレがあるけど、多分scpの表示の問題。実際のアップロードにかかる時間は12.5KB/sに近い値になっていた。

制限を解除する

制限を解除する際の文法は下記。

$ sudo wondershaper clear eth0

解除を実行する。

$ sudo wondershaper clear eth0

同じファイルをscpしてみる。

$ scp big_file.gz server:

big_file.gz  100%  120MB  14.1MB/s   00:08

14.1MB/s。制限がなければこれくらいは出る環境で実行している。

起動時に制限を実行

/etc/network/interfaces に書き加えたりsystemctlに入れて自動起動するようにする等の方法があるようだけど、適当に /etc/rc.local に下記の行を追加して済ませた。

wondershaper eth0 100 100

改定履歴

Author: Masato Watanabe, Date: 2019-05-06 記事投稿