ホーム | カスタムPC | サポート | リナックス | ギャラリー | 会社概要 | お問合せ

shaperd による帯域制御


 Ubuntu 8.10 での shaperd による帯域制御の方法です。

1.ip_queue のロード
# mod_probe ip_queue
で、ip_queue のモジュールをロードします。起動時に自動ロードする場合には、/etc/modules に、ip_queue を追加します。
(/etc/modules)
 # /etc/modules: kernel modules to load at boot time.
 #
 # This file contains the names of kernel modules that should be loaded
 # at boot time, one per line. Lines beginning with "#" are ignored.

 fuse
 lp
 ip_queue                                   
<---- この行を追加

2. shaperd のインストール
# aptitude install shaperd
で、shaperd をインストールします。shaperd をインストールすると、/etc/shaperd が作成されます。また、/etc/init.d の下に起動スクリプトshaperd が作られます。

3. 設定ファイルの編集
インストール後の設定ファイル /etc/shaperd/shaperd.conf は、コメントのみで、帯域制限は行われません。/usr/share/doc/shaperd/examples の中にある例を雛型にして、設定ファイルを編集します。

4. 最も簡単な設定例
すべての input と output に対して、帯域を 512 Kbytes/sec に設定する例です。
(/etc/shapred/shaperd.conf)
 log level = info
 packet forwarding = ipq
 daemon = yes
 pidfile = /var/run/shaperd.pid
 class all {
     ipv4 classifier proto=all
     bandwidth = 512 kbyte/s
     queue limits = 100 kb 100 packets
 }

5. 帯域制御の実行
この設定例を実行するには、以下の様にします。
# /etc/init.d/shaperd start
で、shaperd を起動した後、
# iptables -A OUTPUT -j QUEUE
# iptables -A INPUT -j QUEUE
で、パケットフィルターのルールテーブルを設定します。iptables で指定するルールは、shaperd の設定と関係します。

6. 帯域制御の解除
# iptables -D OUTPUT -j QUEUE
# iptables -D INPUT -j QUEUE
で、帯域制御は解除されます。shaperd は終了する必要はありませんが、一応、
# /etc/init.d/shaperd stop
で shaperd を終了させます。

7. 帯域制御の効果
7.1. 送信に対する効果

shaperd を使用しない場合でのファイル転送時のシステム・モニタのスクリーンショットです。2 ~ 5 MBytes/sec でファイルが転送されています。 shaperd を使用した場合でのファイル転送時のシステム・モニタのスクリーンショットです。帯域制限を 512 KBytes/sec に設定していますが、システム・モニタを見る限りでは、250 KBytes/sec ~ 1.0 MBytes/sec の間で送信を行っています。転送速度のばらつきは大きいですが、帯域制御は行われている様です。

7.2. 受信に対する効果

shaperd を使用しない場合でのファイル転送時のシステム・モニタのスクリーンショットです。1 ~ 4 MBytes/sec でファイルが転送されています。 shaperd を使用した場合でのファイル転送時のシステム・モニタのスクリーンショットです。送信の時と異なり、受信の場合は転送速度のばらつきは殆どありません。520 KBytes/sec 程度に帯域制御されている事がわかります。