
実用 Apache 2.0運用・管理術
第4回 mod_deflateによるコンテンツの圧縮転送
| サーバのマシン性能は十分でも、コンテンツの転送時間がボトルネックとなってパフォーマンスが出ない場合がある。このようなときの対処法として、コンテンツの圧縮転送がある。(編集部) |
鶴長 鎮一(book@tsurunaga.jp)
2005/10/7
前回に引き続き、Apacheのパフォーマンスチューニングについて解説します。今回はナローバンドで効果を上げる、コンテンツ圧縮機能を取り上げます。
回線のボトルネック解消
ブロードバンドが広く普及したとはいえ、携帯インフラなど依然ナローバンドが主流の分野もあります。そして、Webサーバ自身のパフォーマンスよりも、回線のボトルネックがレスポンスに大きく影響を及ぼすことがあります。例えば、ダイヤルアップで多くのユーザーがApacheに接続した場合、1つの接続が占有するCPU時間が長くなるため、同時接続数が増大する傾向にあります。
このような場合は、限られた回線帯域を有効に利用するために、送信データの圧縮転送で状況の改善を図ります。Apache 1.xではmod_gzipモジュールがその役割を担っていましたが、Apache 2.0ではmod_deflateを利用します。
■mod_deflateモジュールのメリット/デメリット
mod_deflateモジュールを導入すると、コンテンツの転送量が減少するためネットワークへの負荷が低減できます。
一方、デフォルトの設定では転送する全コンテンツに圧縮処理を行うため、CPU消費率が高くなります。また、mod_deflateモジュールは一度圧縮したものを圧縮した状態でキャッシュしないため、静的/動的にかかわらず、リクエストが発生するたびにコンテンツの圧縮を行うなど、あまり効率が良くありません。また、クライアントのWebブラウザによっては圧縮コンテンツを処理できず文字化けを起こすなどの不具合が発生することもあります。
mod_deflateモジュールを導入するかどうかは、主に回線負荷とCPU負荷をてんびんにかけて判断することになります。しかし、CPU負荷以外にも上記のような不具合が発生する可能性があることも理解しておきましょう。本稿では、そうした不具合を発生させないようにWebブラウザの種類や圧縮対象コンテンツを限定する方法も併せて紹介します。
■回線ボトルネックの見極め
パフォーマンス悪化の原因が回線のボトルネックによるものか否か見分けるには、定期的にサーバのステータスを確認する必要があります。
第3回の「起動プロセス/待機プロセスの状態を調べるには」で、Apacheのmod_statusを使用したプロセス数とその状態の確認方法を解説しました。プロセスの状態欄で「W」が多い場合、コンテンツの転送に時間を要していることが分かります。また、httpd.confを編集して「ExtendedStatus」を有効化することで、1秒当たりのリクエスト処理数を見ることができます。
ExtendedStatus On |
以下の画面のように、CPU稼働率に余裕があるなら、mod_deflateの導入効果が期待できます。
![]() |
画面 「ExtendedStatus On」にしたApacheのステータス |
より詳細に状況を把握するため、リクエストごとにレスポンスを返すまでに要した秒数をログに出力させることもできます。httpd.confのLogFormatで、「%T」を追加するのです。LogFormatが複数ある場合は、CustomLogでどのLogFormatが有効なのかを確認します。
「%T」の単位は秒です。そのため、転送に1秒かからなければ「0」と表示されます。HTMLのようなテキストコンテンツで0秒より大きな値が出力されるようなら、転送の部分にボトルネックが発生していると見なすことができます。
LogFormat "%h %l %u %t \"%r\" %>s %b %T" common ←ログフォーマット「common」の設定 |
| httpd.conf |
XXX.XXX.XXX.XX - - [XX/Sep/2005:00:58:42 +0900] 0 "GET /XXX/XXXXX.html HTTP/1.1" 200 6278 0 ←1秒未満の場合 |
| access_log |
|
1/3
|
|
||||||
|
||||||
| 連載 実用 Apache 2.0運用・管理術 |
| Linux Squareフォーラム サーバ構築・運用関連記事 |
| 連載:Heartbeatでかんたんクラスタリング(連載中) オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します |
|
| 特集:Apache 2.2でWebサイトをパフォーマンスアップ! 最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する |
|
| 連載:実用 Apache 2.0運用・管理術(全8回) 本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える |
|
| 連載:実用
BIND 9で作るDNSサーバ(全15回) 本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく |
|
| 連載:実用qmailサーバ運用・管理術(全14回) 本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで |
|
| 特集:Samba
3.0の全貌 改訂版 Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する |
|
|
- ビシッと決めるチューニング:もう一絞り編 (2010/9/3)
キャッシュやスレッド処理の実装といった、OpenLDAP内部に踏み込んだチューニング手法を紹介します - 知らなきゃ損するiptablesのTips (2010/8/23)
いちいちコマンドラインで実行する代わりに設定を保存したり、運用を手助けするちょっとした工夫を紹介します - インストール、そしてはじめの一歩 (2010/8/17)
プログラマに高い人気を誇るエディタの1つ「Vim」。その導入から基本の操作、設定に至るまでを紹介します - SPICEプロトコルの内側を知る (2010/8/11)
画面転送プロトコルのSPICEは、6つのチャンネルから構成されています。それぞれどんな役割を担っているのかを紹介します
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報









