ネットワークによっては、Microsoftのwindowsupdate.com(ほとんどすべてのWindows PCがOSのアップデートに利用している)のようなサイトが、最も帯域幅を必要とするサイトの1つになっている。残念ながら、こうしたサイトは部分的にコンテンツを提供する(HTTPステータスコード206を返す)ため、現状のSquidではキャッシュができない。クライアントマシンの管理を行っているなら、Microsoft Updateサーバを用意することでwindowsupdate用のキャッシュが扱えるようになる。Updateサーバが使えないなら、Squidの帯域幅管理手法である遅延プール(delay pool)を使って、ピーク時間帯にwindowsupdateが消費する帯域幅を制限することができる。クライアント側は、それ以外の時間帯に接続を行ってアップデートを完了することになる。
次の例は、グローバル遅延プールの1つを64Kbps(8KBps)に設定している。これにより、10:00~16:00のピーク時間帯は宛先ドメインがwindowsupdate.comのトラフィックが64Kbpsに制限される。
acl winupdate dstdomain .windowsupdate.com acl peakperiod time 10:00-16:00 delay_pools 1 delay_class 1 1 # 64 Kbit/s delay_parameters 1 8000/8000 delay_access 1 allow winupdate peakperiod
上記のような変更を行うことで、私が利用しているSquidのバイトヒット率は8%から26~37%に向上した。バイトヒット率が33%だとすれば、全トラフィックの3分の1が(より低速なインターネット上のリンクからではなく)キャッシュから得られていることになる。なお、監視およびログ解析によるSquidのパフォーマンス評価には、squid3-clientやcalamarisが使える。
Solomon AsareはHTTP圧縮サービスDelXyの開発者。
