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 程度に帯域制御されている事がわかります。 |
