mod_deflateやgzipの圧縮転送は便利?


mod_deflateやgzipの圧縮転送について調べています。
これらを導入するためにはどうすればいいのか、プログラムに変更が必要なのか、Apacheの設定だけでいいのか、どれくらいの効果があるのかなどを知りたいです。

また、困ったこともあわせて教えてください。

回答の条件
  • 1人2回まで
  • 登録:2009/08/02 13:12:03
  • 終了:2009/08/09 13:15:02

回答(2件)

id:b-wind No.1

b-wind回答回数3344ベストアンサー獲得回数4402009/08/02 13:28:07

ポイント35pt

使用しているOSと Apache のバージョンを明記してください。

@IT:mod_deflateによるコンテンツの圧縮転送(2/3)


最近のOSであればモジュール自体はすでに導入されており、基本的には Apache の設定変更のみで済みます。


効果についてはある程度アクセス量があり、テキストベースの転送量が多いサイトにとっては劇的と言える効果を発揮します。

ざっくりと転送量が1割程度まで減ると考えて良いです。

NetAndProg-web296-No32.txt - 前回のweb296情報源にも出ていましたが、先週、おそらく日本で一番有名な巨

少々古い話になりますが、2ch.net の閉鎖騒動を救った技術の一部もこれと同様の技術です。


注意点としては画像・動画サイトに関しては効果が薄いこと(元々圧縮されているため再圧縮してもあまり意味がない)。

窓の杜や Vector 等のバイナリファイルの配布に関しても同様です。

あと、静的コンテンツに関しては圧縮済みのファイルを用意すればよいのでほとんど問題になりませんが、

動的コンテンツの場合、都度圧縮処理を行うことになるのでコンテンツをキャッシュできるようにするなどのプログラム改変をした方が効果的です。

また、あくまでデータ転送時間を削減する効果しかないのでコンテンツの処理自体に時間がかかるサイトなどの場合相対的に効果が薄いです。

前述の圧縮処理と関連して状況が悪化することもあり得ます。

id:dingding

ありがとうございます。試してみる価値ありそうですね。試してみます。

2009/08/02 14:53:47
id:ramenboy No.2

ramenboy回答回数16ベストアンサー獲得回数12009/08/02 14:21:59

ポイント35pt

> これらを導入するためにはどうすればいいのか、プログラムに変更が必要なのか、Apacheの設定だけでいいのか

Apache側の追加モジュールインストールとhttpd.confの設定だけです。

プログラムが何を指すか分かりませんが、コンテンツやCGIプログラムはそのままでOKです。

httpd.conf中では、どの拡張子(content-type)に圧縮を適用するか、圧縮率はどれくらいにするか、といった設定を行います。


> どれくらいの効果があるのかなどを知りたいです。

どれくらいの効果が望めるかの「概算」を出す方法です。

まずは、お使いのウェブサーバで圧縮設定をしていない場合のパケットを1日分くらいキャプチャしておきます。

# tcpdump -ni eth0 -s 0 -w /var/tmp/http.dump port 80

これにより、数メガバイト、またはそれ以上のhttp.dumpというファイルが出力されますので、gzip圧縮して、圧縮率を確認します。

# gzip -v /var/tmp/http.dump

/var/tmp/http.dump: 50.0% -- replaced with /var/tmp/http.dump.gz

この例だと、50%のサイズに圧縮することができたため、転送率を1/2に抑えることが期待できます。

ただし、http.dump中にはTCP、HTTPヘッダなどの情報も含まれるため、あくまでも概算であり厳密な数値ではありません。

このテストで5〜10%未満の圧縮しか見込めなかった場合は、あまり導入の意味も無いかもしれません。


> また、困ったこともあわせて教えてください。

サーバのスペックが貧弱だと、圧縮により表示時間がかえって遅くなったりしますし、圧縮のきかないjpegコンテンツなどに

圧縮を適用すると、CPU負荷以外の何者にもなりません。

あと、クライアント側で考えると、圧縮されたコンテンツを伸張して描画する必要がありますので、こちらも低スペックなクライアントには不向きとなります。

id:dingding

なるほど、CPUのことも考える必要があるんですね。

ちなみに、ケータイサイトでも大丈夫なのかわかれば知りたいです。

2009/08/02 14:54:50
  • id:ramenboy
    クライアントブラウザがAccept-Encodingヘッダを送ってくればサーバは圧縮したコンテンツを送出します。

    IEやFirefoxはgzip伸張に対応しているため、常にこのヘッダを送りますが、ケータイブラウザは基本的にgzipには対応していません。フルブラウザであれば効果があるのですが・・・。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません