つい最近、notu 先生に頼まれてある番組を録画しておいたのですが、
それを転送していると予想以上に帯域を食われるということを経験しました。
2GB のファイルを adsl の上り帯域をフルに使って、
延々と 6 時間もダウンロードしていた
*1
のです。
これが僕が寝ている間であればかまわないのですが、
相手の都合などを考えるとそうも言っていられません。
そこで、帯域制限を行うことでこの問題を解決しようと調べものをしてみました。
@
mod_bandwidth:
というわけで apache + 帯域制限 で google してみると、
mod_bandwidth
というものがよく使われているようです。
これは apache package に標準で含まれているようです。
% dpkg -S mod_bandwidth.so
apache-common: /usr/lib/apache/1.3/mod_bandwidth.so
設定の仕方は参考ページを見てもらうとして、手元ではこうしてみました。
LoadModule bandwidth_module /usr/lib/apache/1.3/mod_bandwidth.so
<IfModule mod_bandwidth.c>
BandWidthModule On
BandWidth all 0
# 50kbps limit for larger than 10MB file.
LargeFileLimit 10240 51200
</IfModule>
しかし、これだけでは
[Tue Feb 25 18:05:15 2003] [error] (2)No such file or directory: mod_bandwidth :
Can't create/access master file /var/lib/apache/mod-bandwidth/master/771:764283
というエラーが発生してしまい、帯域制限を正しく行うことが出来ません。
これは BandWidthDataDir = /var/lib/apache/mod-bandwidth になっているためで、
この directory が整備されていないために起きるものです。
よって、以下の作業を行います。
mkdir -p /var/lib/apache/mod-bandwidth/link
mkdir -p /var/lib/apache/mod-bandwidth/master
chown -R www-data.www-data /var/lib/apache/mod-bandwidth
これらの作業を行うことで、帯域制限を行うことが出来ました:)
あとはダウンロード時の帯域を調べて、
local network 利用者(僕)に不具合が起きない程度に帯域制限をかけるだけです。
@
Can't create/access master file /var/lib/apache/mod-bandwidth/...:
この /var/lib/apache/mod-bandwidth が存在しないと言うのは、
おそらく packaging miss なんでしょうね…。
spelling miss なのか代わりに /var/lib/apache/mod_bandwidth が存在します
*2
し…。
ぱっと bts を見てみたのですが、それらしい bug も報告されていませんし、
実は誰も使ってないのかもしれませんねぇ…(^^;
仕方がないので、つたない英語で bts にとともに投げておきました。
quick-hacked patch をつけておいたから、そっちで意図を組んでくれるとよいな(^^;
…
apache の bts page
を見たら
同じことが報告されて
いますね…(汗
よく読んでから送らなくちゃダメですね…。
でも、mod_bandwidth.so は under apache-common package だよ…(;_;
@
参考資料。:
*1: いくらブロードバンド時代といっても、
4MB/s の mpeg2 stream を簡単に流せるほど帯域は太くないのですよね〜。
*2: なぜか link, master は存在しませんが…